Historical Ledger — Oil Lease Months
Queryable EBCDIC
29.5 million oil lease-months, 1993 to 2024: allowable against production, storage, overproduction and casinghead gas.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Historical Ledger — Statewide Oil, 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 06 LDOLDATA segment of S.LDF900OL on its own: 29,542,093 rows, one per oil lease per reporting cycle, from January 1993 to June 2024. This is the table the Historical Ledger exists for, and it is published separately because a download is of one table and the root's 158,566 balance rows are not what anyone comes here for.
Each row is a month of a lease's regulatory life: the oil allowable and the barrels reported against it on the P-1, the stock left at the end of the month, the cumulative overproduction, the movable balance, the casinghead gas limit and production and gas-lift injection, the counts of flowing and other wells, and the operator and field the lease belonged to THAT month -- 21,448 distinct operator numbers across the file, 21,446 of which resolve in the P-5 directory.
cycle_yyyymm is 202406 for June 2024, decoded from the tape's own key, which counts DOWN from 9927 for January 1993. The table is partitioned by that column, one partition per year, so a query that names a cycle range reads only the years it asked for. Narrowing by cycle is the difference between a fast export and a refused one.
What you can do with it
Chart a lease's allowable against its production for thirty-one years; find the months a lease produced beyond its allowable and the months it worked the overage off; total oil by district and year for the whole state; or take one year -- about a million rows -- and join it to the P-5 directory to see who was operating what in 1997.
Gotchas
FILTER ON THE CYCLE. The table is 29.5M rows partitioned by year, and a cycle range is the only filter that lets Postgres skip whole years of it. A district or an operator on their own still read every partition.
THE DISTRICT IS THE INTERNAL NUMBER, 01-14: 07 is 6E, 08 is 7B, 11 is 8A. Same as PDQ, not the same as the oil proration ledger or the W-10.
csghd_limit CARRIES THE ALL-NINES SENTINEL. 249,008 months hold 999,999,999, which is RRC's way of writing 'no casinghead limit applies' and not a limit of a billion MCF. Upstream stored it as written rather than nulling it, so exclude it before you average or sum. The oil allowable never carries the sentinel.
The flags are not the copybook's. p1_filed is 'Y' on 23,232,174 months, but the tape writes '0' rather than 'N' for a month with no report -- 'N' appears on 1,359 rows in the whole file. Same for corrected_p1 and, on 15,124 rows, for commingled.
flow_wells and other_wells are three digits, so a lease with more than 999 wells shows only the last three; the largest values on the file are 672 and 997. The manual also warns that both are frozen at the moment the cycle rolled off the live database and are never updated afterwards.
A negative oil_movable_balance -- 574,467 months -- is the ledger saying the lease was in violation of statewide rules, not a data error.
The lease number is unique only inside its district. Filter on both.
Record layout
21 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
hist_oil_lease_cycle
21 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
district
key
join
|
text | — | LDROOT-DISTRICT |
RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent from both tapes), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no and the statewide production tape writes in district, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those '08' means District 08, and here it means 7B. e.g. 11 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | LDROOT-LEASE-NBR |
The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 158,566 leases on the tape carry 68,631 distinct numbers between them, so a query on the number alone returns other districts' leases. e.g. 3137 | — |
| 3 |
cycle_yyyymm
key
join
|
integer | 3-6 | LDOLDATA-CYCLE-KEY |
The reporting cycle this row belongs to, as a whole number: 202406 is June 2024. The tape does not store it that way -- it writes a nines-complement month index where January 1993 is 9927 and each later month is one LESS -- and upstream decodes it on load. The file runs 199301 to 202406, 378 months, and the cycle and disposition tables are PARTITIONED by this column, one partition per year, so a predicate on it is what makes a query over tens of millions of rows finish. e.g. 202406 | — |
| 4 |
operator_no
join
|
integer | 7-12 | LDOLDATA-OPERATOR-NUMBER |
The six-digit P-5 operator number for THIS cycle, which is what makes the file a history rather than a snapshot: a lease that changed hands in 2007 has one number before and another after. 21,448 distinct numbers appear across the file and 21,446 of them resolve in the P-5 operator directory. e.g. 463316 | — |
| 5 |
field_no
join
|
integer | 13-17 | LDOLDATA-FL-FIELD-NO |
The five-digit RRC field number for this cycle, as a whole number. It is the field HALF of the eight-digit field key; field_reservoir_no is the other three digits. Reassemble them as field_no * 1000 + field_reservoir_no before joining to a PDQ or field-tape field number. e.g. 48583 | — |
| 6 |
field_reservoir_no
|
integer | 18-20 | LDOLDATA-FIELD-RESERVOIR-NO |
The three-digit reservoir number under the field, the low end of RRC's eight-digit field key. Non-zero on 29,541,138 of the 29,542,093 rows. e.g. 1 | — |
| 7 |
oil_type_field_code
|
text | 21 | LDOLDATA-OIL-TYPE-FIELD-CODE |
How RRC classified the field that cycle: R regular (25,713,568 months), C county-regular (3,021,623), S salt dome (519,682), M reservoir MER (147,276), N NPX (84,027), I inactive (7,153). Null on 48,764. e.g. R | — |
| 8 |
p1_filed
|
text | 22 | LDOLDATA-P1-FILED-FLAG |
'Y' where a Form P-1 was filed for the cycle before it rolled off the live production database -- 23,232,174 months. The copybook documents 'N' for no report and the tape almost never writes it: '0' appears on 6,274,535 months and 'N' on 1,359 in the whole file. Read anything that is not 'Y' as 'no report'. e.g. Y | — |
| 9 |
corrected_p1
|
text | 23 | LDOLDATA-CORRECTED-P1-FLAG |
'Y' where a report was filed AFTER the cycle had rolled off the live database -- a historical correction, on 748,614 months. Like p1_filed, the tape writes '0' rather than 'N' for the negative. | — |
| 10 |
flow_wells
|
integer | 24-26 | LDOLDATA-FLOW-WELLS |
Count of producing wells on the lease that were flowing, at the moment the cycle rolled off the live database. The manual is explicit that it is never updated afterwards. Three digits, so a lease with more than 999 flowing wells shows only the last three; the largest value on the file is 672, and 2,699,577 months carry any at all. e.g. 0 | — |
| 11 |
other_wells
|
integer | 27-29 | LDOLDATA-OTHER-WELLS |
Count of producing wells on any method other than flowing -- pumping, gas lift, plunger. Same three-digit limit and the same freeze at roll-off; non-zero on 16,683,753 months, largest 997. e.g. 513 | — |
| 12 |
commingled
|
text | 30 | LDOLDATA-COMMINGLED-FLAG |
'Y' where the lease held an active permit to commingle liquids that cycle, on 6,502,953 months. 'N' on 22,990,376, and '0' on 15,124 where the tape wrote zeros instead. e.g. Y | — |
| 13 |
allowable
|
integer measured in bbl | 31-35 | LDOLDATA-ALLOWABLE |
The month's oil allowable for the whole lease in barrels, summed over its wells. Non-zero on 18,940,166 months and reaching 28,212,759 barrels. Unlike the live production tape's gas allowable, it is stored in full. e.g. 755670 | — |
| 14 |
oil_production
|
integer measured in bbl | 36-40 | LDOLDATA-OIL-PRODUCTION |
Barrels of oil the operator reported on the Form P-1. Non-zero on 17,944,450 months; the largest is 1,812,416. This is the figure PDQ publishes as lease_oil_prod_vol: in cycle 202406 the two are identical on 95,681 of the 95,693 leases both carry. e.g. 675919 | — |
| 15 |
oil_ending_balance
|
integer measured in bbl | 41-45 | LDOLDATA-OIL-ENDING-BALANCE |
Oil in storage on the lease at the end of the month, in barrels. Non-zero on 22,074,144 months. The newest cycle's value is what the live production database opens on: for 202406 it equals pd_oil_lease.oldest_eom_balance on 95,630 of the 95,693 leases in both. e.g. 7258 | — |
| 16 |
oil_present_status
|
integer measured in bbl | 46-50 | LDOLDATA-OIL-PRESENT-STATUS |
Cumulative oil overproduction in barrels through the last reported production, in barrels. Non-zero on 1,155,712 months. | — |
| 17 |
oil_movable_balance
|
integer measured in bbl | 51-55 | LDOLDATA-OIL-MOVABLE-BALANCE |
The stock that may legally leave the lease this cycle: the month-end closing stock, less any cumulative overproduction. Negative on 574,467 months, which the manual reads as the lease being in violation of statewide rules -- not a data error. e.g. 7258 | — |
| 18 |
csghd_limit
|
integer measured in MCF | 56-60 | LDOLDATA-CSGHD-LIMIT |
The month's casinghead gas limit for the lease in MCF, summed over its wells. WATCH THE SENTINEL: 249,008 months carry 999,999,999, which is RRC's way of writing 'no limit applies' rather than a limit of a billion MCF. Upstream stored it as the tape wrote it, so exclude it before you average or sum. Non-zero on 18,879,135 months in all. e.g. 999999999 (the no-limit sentinel) | — |
| 19 |
csghd_production
|
integer measured in MCF | 61-65 | LDOLDATA-CSGHD-PRODUCTION |
MCF of casinghead gas produced from the lease, as reported on the P-1. Non-zero on 11,841,067 months. e.g. 2598042 | — |
| 20 |
csghd_lift
|
integer measured in MCF | 66-70 | LDOLDATA-CSGHD-LIFT |
MCF of produced gas injected back into the lease as gas lift. The manual notes the consequence: the casinghead DISPOSITION total is production plus lift, not production alone. Non-zero on 153,433 months. | — |
| 21 |
csghd_status
|
integer measured in MCF | 71-75 | LDOLDATA-CSGHD-STATUS |
Cumulative casinghead gas overproduction in MCF through the last reported production. Non-zero on 597,863 months. | — |
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 (internal number) 14 values
Read by district
RRC's internal sequential district numbering, 01 to 14 plus 20 for statewide. The production data, the UIC database and the high-cost gas certifications all use this. Internal 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. There is no internal 12.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio (internal 01) Internal district number 01, which RRC prints as District 01 and administers from San Antonio. |
02 |
District 02 — San Antonio (internal 02) Internal district number 02, which RRC prints as District 02 and administers from San Antonio. |
03 |
District 03 — Houston (internal 03) Internal district number 03, which RRC prints as District 03 and administers from Houston. |
04 |
District 04 — Corpus Christi (internal 04) Internal district number 04, which RRC prints as District 04 and administers from Corpus Christi. |
05 |
District 05 — Kilgore (internal 05) Internal district number 05, which RRC prints as District 05 and administers from Kilgore. |
06 |
District 06 — Kilgore (internal 06) Internal district number 06, which RRC prints as District 06 and administers from Kilgore. |
07 |
District 6E — Kilgore (internal 07) Internal district number 07, which RRC prints as District 6E and administers from Kilgore. |
08 |
District 7B — Abilene (internal 08) Internal district number 08, which RRC prints as District 7B and administers from Abilene. |
09 |
District 7C — San Angelo (internal 09) Internal district number 09, which RRC prints as District 7C and administers from San Angelo. |
10 |
District 08 — Midland (internal 10) Internal district number 10, which RRC prints as District 08 and administers from Midland. |
11 |
District 8A — Midland (internal 11) Internal district number 11, which RRC prints as District 8A and administers from Midland. |
13 |
District 09 — Wichita Falls (internal 13) Internal district number 13, which RRC prints as District 09 and administers from Wichita Falls. |
14 |
District 10 — Pampa (internal 14) Internal district number 14, which RRC prints as District 10 and administers from Pampa. |
20 |
District 20 — State Wide (internal 20) Internal district number 20, which RRC prints as District 20 and administers from State Wide. |
Source: Generated from texas.pdq_gp_district.district_no
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.
Historical Ledger — Oil Lease Months joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
was operated that month by
The operator of the lease FOR THAT CYCLE, which is what makes this table a history: a lease that changed hands in 2007 carries one number before and another after, and the P-5 directory turns either into a name. 29,542,089 of the 29,542,093 rows resolve, over 21,448 distinct operator numbers of which 21,446 are in the directory. The directory is a snapshot of who is registered TODAY, so an operator that dissolved in the 1990s may be there with a lapsed P-5 status, or not at all. Four rows in thirty-one years is what that costs. Both columns are integers, so no cast is needed.
historical-ledger-oil-lease-months.operator_no = p5-organization-ascii.id
Historical Ledger — Oil Lease Months joins to Historical Ledger — Statewide Oil on District and Lease number — many rows here share a single row there.
has its months
The 06 LDOLDATA segment under the root: every month this lease reported since January 1993, with the allowable, the production, the storage and the overproduction. All 158,566 leases have at least one, and they average 186 -- the longest carries 378, which is every month on the tape. This is where a reader should be going. The root is 158,566 rows of balances; the months are 29,542,093 rows of history.
historical-ledger-oil.district = historical-ledger-oil-lease-months.district AND historical-ledger-oil.lease_no = historical-ledger-oil-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 Historical Ledger.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.hist_oil_lease_cycle
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.