Oil Ledger — Lease Months
Queryable EBCDIC
Twelve months of oil and casinghead gas production against allowable, lease by lease.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Oil Ledger, which this was parsed out of — so Original gets you that whole file, not just this table. Every other format is this table alone.
Free. You will be asked to confirm an email address before the files are built — that is the only gate, and it is there so we can tell you when a large export is ready.
What this is
The L-MONTH group of the OLA013K lease record: 1,180,656 rows, twelve months for each of the 98,388 leases. This is the production half of the proration schedule -- the month's oil allowable and the oil the operator reported on Form P-1, how it left the lease and by what method, what was left in storage, and the casinghead gas produced against the lease's gas limit.
What you can do with it
Compare a lease's reported production against the allowable it was assigned, month by month; find leases that never filed a P-1; and total oil by disposition -- pipeline, truck, skim oil -- rather than by production alone.
Gotchas
Twelve months, not fourteen: the lease record carries twelve where the field, multi-well and well records carry fourteen, and it ends two months earlier. The August 2026 tape runs 202506 to 202605.
month_ordinal is a slot on a rolling tape, not a date. Filter on cycle_yyyymm.
gas_limit is null where the tape carried all nines, which is RRC's way of writing 'no limit' -- 9,105 rows. Treating the sentinel as a number would put 999,999,999 MCF of headroom on those leases.
Disposition is not production. When an operator reports more than two disposition amounts the extras are added together under code 7, and a pipeline amount always goes in the primary slot whether or not it is the largest.
flowing_wells and other_wells are three digits: a lease with more than 999 wells shows only the last three. gas_lift, letter_code and change_status_code are zero in every row of the current tape.
Record layout
25 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
oil_ledger_lease_month
25 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
district
key
join
|
text | 2-4 | LEASE-REC-DIST |
RRC district of the lease this month belongs to, in the ledger's spelling. e.g. 01 | RRC district (proration ledger spelling) |
| 2 |
field_no
key
join
|
integer | 5-12 | LEASE-REC-FIELD |
Field number of the lease this month belongs to. | — |
| 3 |
operator_no
key
join
|
integer | 13-18 | LEASE-REC-OPR |
P-5 number of the lease operator. | — |
| 4 |
lease_no
key
join
|
integer | 19-23 | LEASE-REC-LEASE |
The five-digit oil lease number. e.g. 19016 | — |
| 5 |
month_ordinal
key
|
smallint | — | — | Which of the twelve month slots in the lease record this row came from, 1 to 12, oldest first. The lease record carries twelve months where the field, multi-well and well records carry fourteen. The ordinal is a position on a rolling tape, not a date: use cycle_yyyymm. e.g. 12 | — |
| 6 |
cycle_yyyymm
|
integer | 225-230 | L-MONTH-DATE |
The production month this row reports, CCYYMM. The August 2026 tape runs 202506 to 202605, and every one of the 98,388 leases carries all twelve. e.g. 202605 | — |
| 7 |
severance
|
smallint | 231 | LM-SEV |
1 when a lease severance letter was issued this month, stopping oil and gas from leaving the lease. 236,699 of 1,180,656 rows. | — |
| 8 |
retro
|
smallint | 232 | LM-RETRO |
1 when a retroactive allowable change or a late production report arrived this month. 318,330 rows; the code is cleared on the next ledger. | — |
| 9 |
rec
|
smallint | 233 | LM-REC |
Whether the month's P-1 production report was received: 0 not received (273,495 rows), 1 received (622,202), 2 corrected allowable with a P-1 filed, 3 corrected allowable without one, 4 a corrected P-1. | — |
| 10 |
name_change
|
smallint | 234 | LM-CHG |
What changed this month: 1 field name, 2 operator name, 3 lease name, 5 casinghead gatherer, 6 a combination, 7 oil gatherer, 8 no allowable so remarks print, 9 lease removed then reinstated. | — |
| 11 |
oil_allow
|
integer measured in bbl | 235-238 | LM-ALLOW |
The lease's oil allowable for the month, in barrels. Non-zero on 702,551 of 1,180,656 rows. | — |
| 12 |
oil_prod
|
integer measured in bbl | 239-242 | LM-PROD |
Oil the operator reported producing from the lease this month on Form P-1, in barrels. Never negative on the current tape. | — |
| 13 |
flowing_wells
|
smallint | 243-245 | LM-FW |
Number of wells the operator reported as flowing on their own reservoir pressure. Three digits: a lease with more than 999 shows only the last three. | — |
| 14 |
other_wells
|
smallint | 246-248 | LM-OW |
Number of producing wells reported as pumping, gas lift or jetting rather than flowing. Also truncated to three digits. | — |
| 15 |
disp_amt_1
|
integer measured in bbl | 249-252 | LM-PL |
Barrels disposed of by the primary method, which disp_code_1 names. When a pipeline amount is reported it always goes here, whether or not it is the largest. | — |
| 16 |
disp_code_1
|
smallint | 253 | LM-PLC |
Primary disposition: 0 pipeline (904,479 rows), 1 trucks (275,788), 2 tank cars or barge, 3 net oil from tank cleaning, 4 circulating oil, 5 lost, 6 sedimentation, 7 other or combined, 8 skim oil, 9 scrubber oil. e.g. 0 | — |
| 17 |
disp_amt_2
|
integer measured in bbl | 254-257 | LM-OTH |
Barrels disposed of by the secondary method. Two or more secondary methods are added together and coded 7. | — |
| 18 |
disp_code_2
|
smallint | 258 | LM-OTHC |
Secondary disposition, same list as disp_code_1 except that 0 means no code rather than pipeline. 8 (skim oil) is the commonest non-zero value at 96,480 rows. | — |
| 19 |
oil_in_storage
|
integer measured in bbl | 259-262 | LM-STO |
Barrels of oil in storage on the lease at the end of the month. | — |
| 20 |
gas_limit
|
integer measured in MCF | 263-267 | LM-GL |
The lease casinghead gas limit for the month, in MCF -- how much gas the lease may produce alongside its oil. Null where the tape carried all nines, which is RRC's way of writing 'no limit': 9,105 of 1,180,656 rows. | — |
| 21 |
gas_prod
|
integer measured in MCF | 268-272 | LM-GPROD |
Casinghead gas the operator reported for the month on Form P-1, in MCF, with any gas used for gas lift already subtracted. | — |
| 22 |
gas_lift
|
integer measured in MCF | 273-276 | LM-GLIFT |
Gas-lift gas produced, in MCF -- gas injected down the well and produced again, subtracted from gas_prod. Zero in every row of the August 2026 tape. | — |
| 23 |
casinghead_letter
|
smallint | 277 | LM-CSIL |
1 when a casinghead shut-in letter went out this month. Twelve rows in the whole tape. | — |
| 24 |
change_status_code
|
smallint | 278 | LM-JOHN |
1 when the adjusted oil or gas balance took effect this month. Zero in every row of the current tape, matching the empty adj_* columns on the lease record. | — |
| 25 |
letter_code
|
smallint | 279 | LM-LTR-CODE |
RRC's internal delinquent-or-discrepant flag: 1 no P-1, 3 oil reported without gas, 4 gas without oil, 5 out of balance, 6 the well count disagrees, 7 an impossible disposition code. Zero in every row of the August 2026 tape. | — |
Code lookups used here
Every coded column in this dataset resolves to a real lookup table, so
a well code of G can be read as what it actually means.
RRC district (proration ledger spelling) 14 values
Read by district
The district as the oil and gas proration ledger tapes write it, which is NOT how the rest of the corpus writes it. The ledger pads the lettered districts to three bytes -- 06E, 07B, 07C, 08A -- where the W-10, the G-10 and PDQ's district_name write 6E, 7B, 7C and 8A. That difference is worth a code set of its own because it is invisible in a join: a query matching ledger.district against w10.district returns rows for the ten numeric districts and silently drops the four lettered ones, which are 24% of the oil ledger's wells. Strip the leading zero before joining, or add it coming the other way. `canonical_value` is the internal district number, the same convention rrc.district uses, so a ledger district resolves to the same district in either numbering.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio Written 01 here and 01 elsewhere. |
02 |
District 02 — San Antonio Written 02 here and 02 elsewhere. |
03 |
District 03 — Houston Written 03 here and 03 elsewhere. |
04 |
District 04 — Corpus Christi Written 04 here and 04 elsewhere. |
05 |
District 05 — Kilgore Written 05 here and 05 elsewhere. |
06 |
District 06 — Kilgore Written 06 here and 06 elsewhere. |
06E |
District 6E — Kilgore The ledger writes 06E; the W-10 and PDQ write 6E. |
07B |
District 7B — Abilene The ledger writes 07B; the W-10 and PDQ write 7B. |
07C |
District 7C — San Angelo The ledger writes 07C; the W-10 and PDQ write 7C. |
08 |
District 08 — Midland Written 08 here and 08 elsewhere. |
08A |
District 8A — Midland The ledger writes 08A; the W-10 and PDQ write 8A. |
08B |
District 8B — reserved The manuals list 08B as reserved for future use. No record of any ledger tape has ever carried it. |
09 |
District 09 — Wichita Falls Written 09 here and 09 elsewhere. |
10 |
District 10 — Pampa Written 10 here and 10 elsewhere. |
Source: RRC manuals OLA013K, GSA020K and OLA028K (DIST/DIST-NO items); the thirteen spellings in use confirmed as the complete distinct set in texas.oil_ledger_field, texas.oil_ledger_well and texas.oil_detail_well on 2026-08-21
What this joins to
The Railroad Commission never states these keys anywhere in the files. They are the reason the data is hard to use, so here they are with the exact columns on both sides.
Oil Ledger — Lease Months joins to Oil Ledger — Leases on District and Field number and Operator number and Lease number — many rows here share a single row there.
has twelve months of production and allowable
The L-MONTH group of the lease record: the month's allowable, the oil and casinghead gas the operator reported, and how the oil left the lease. All 5,000 sampled leases carry all twelve months.
oil-ledger-leases.district = oil-ledger-lease-months.district AND oil-ledger-leases.field_no = oil-ledger-lease-months.field_no AND oil-ledger-leases.operator_no = oil-ledger-lease-months.operator_no AND oil-ledger-leases.lease_no = oil-ledger-lease-months.lease_no
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- EBCDIC IBM mainframe encoding (cp037). Opening it as text gives you nonsense; it has to be transcoded first.
- RRC publishes
- Updated once a month (Monthly, with the oil ledger.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.oil_ledger_lease_month
EZRRC is an independent mirror of public-domain data published by the Texas Railroad Commission. It is not affiliated with or endorsed by the RRC. For any legal or regulatory purpose, verify against the official RRC release.