Oil Ledger — Leases
Queryable EBCDIC
Every oil lease on the proration schedule, with its gatherers and its balances.
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 LEASE records of OLA013K: 98,388 rows, one per lease per field, carrying the lease name and counties, the oil and gas gatherers that move its production, the commingling permit it produces under, the severance status the Commission has it in, and the overproduction balances it began and ended the tape's twelve months with.
What you can do with it
Find leases running an overproduction balance, see which gathering company takes a lease's oil, and read the severance and removal codes that say whether a lease is in trouble or has left the schedule.
Gotchas
A lease number is unique within its district and not outside it. All 98,388 rows here hold 98,388 distinct district-and-lease pairs, but the same lease number in another district is another lease, and a gas well can carry the same digits again.
The district spelling is the ledger's -- 06E, 07B, 07C, 08A -- where PDQ writes 6E, 7B, 7C, 8A. All 5,000 sampled leases match PDQ's regulatory lease directory once the leading zero is stripped and the lease number cast; 3,848 match without.
panhandle_gor_exc is 'Y' on 46,511 of 98,388 leases. The manual describes it as applying to eight Panhandle field numbers, which cannot be true of half the state -- read it as a lease-basis testing flag and not as a Panhandle marker.
cert, batch, adj_oil_status, adj_gas_status and reduced_rate_yyyymm are empty in every row of the current tape.
Record layout
41 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
41 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
district
key
join
|
text | 2-4 | LEASE-REC-DIST |
RRC district the lease is in, as the ledger tape writes it: 01-06, 06E, 07B, 07C, 08, 08A, 09, 10. PDQ writes the lettered four without the leading zero. e.g. 01 | RRC district (proration ledger spelling) |
| 2 |
field_no
key
join
|
integer | 5-12 | LEASE-REC-FIELD |
The eight-digit field number the lease produces from. e.g. 2001 | — |
| 3 |
operator_no
key
join
|
integer | 13-18 | LEASE-REC-OPR |
P-5 organization number of the lease's current operator. Lease records are ordered by it on the tape. e.g. 893 | — |
| 4 |
lease_no
key
join
|
integer | 19-23 | LEASE-REC-LEASE |
The five-digit RRC oil lease number. Unique within a district: the 98,388 leases here hold 98,388 distinct district and lease pairs even though a lease can appear under more than one field number. e.g. 19016 | — |
| 5 |
offshore
|
smallint | 26 | LEASE-REC-OFFSHORE |
Whether the lease is on land, in state bays and estuaries, offshore or a combination. Same code list as the field record. | — |
| 6 |
lease_name
|
text | 27-58 | L-NAME |
Lease name as filed on Form P-4, up to 32 characters and often abbreviated. e.g. EARNESTINE | — |
| 7 |
county_code_1
|
smallint | 59-61 | L-CO-1 |
County the lease is in, three digits. A lease may span two counties. e.g. 331 | — |
| 8 |
county_code_2
|
smallint | 62-64 | L-CO-2 |
Second county the lease lies in, or 0. | — |
| 9 |
oil_gatherer
|
text | 65-69 | POGATH |
Five-character code of the company that transports most of the lease's oil to the first purchaser. Set in 89,296 of 98,388 rows. The gatherer's name is in the operator directory, not here. e.g. ENTMT | — |
| 10 |
gas_gatherer
|
text | 70-74 | PGGATH |
Five-character code of the lease's main casinghead gas gatherer. Set in 53,817 rows. | — |
| 11 |
oil_split
|
smallint | 75 | OSPLIT |
1 when the lease has more than one oil gatherer, in which case oil_gatherer_2 and oil_gatherer_3 name them. 21,024 rows. | — |
| 12 |
gas_split
|
smallint | 76 | GSPLIT |
1 when the lease has more than one gas gatherer. The other gas gatherers are not carried on this file. | — |
| 13 |
oil_gatherer_2
|
text | 77-81 | OOGATH |
Second oil gatherer, where oil_split is 1. | — |
| 14 |
oil_gatherer_3
|
text | 82-86 | OGGATH |
Third oil gatherer, where one exists. | — |
| 15 |
prior_operator_no
|
integer | 87-92 | OOPR |
P-5 number of the operator who held the lease before the present one. Set in 71,296 of 98,388 rows. | — |
| 16 |
beg_oil_status
|
integer measured in bbl | 93-96 | BO-STATUS |
The lease's oil overproduction balance before the twelve months on this tape, in barrels. Positive means overproduced; zero means it was not. | — |
| 17 |
beg_gas_status
|
integer measured in MCF | 97-100 | BG-STATUS |
The lease's casinghead gas overproduction balance before the twelve months on this tape, in MCF. | — |
| 18 |
moveable_balance
|
integer measured in bbl | 101-104 | MOVE-BAL |
Barrels in storage on the lease that were produced within the allowable and so may be moved off it. A negative value is oil produced beyond the allowable. Accurate as of the last production month on the tape. | — |
| 19 |
present_oil_status
|
integer measured in bbl | 105-108 | PO-STATUS |
Oil overproduction balance in barrels at the end of the last production month on the tape. Only months whose P-1 was received are counted. Non-zero on 7,486 leases. | — |
| 20 |
present_gas_status
|
integer measured in MCF | 109-112 | PG-STATUS |
Casinghead gas overproduction balance in MCF at the end of the last production month reported. | — |
| 21 |
sec_rec
|
smallint | 113 | SEC-REC |
Nine here makes RRC's discrepancy listing print a corrected-allowable message for the lease. 12,373 rows. | — |
| 22 |
cert
|
smallint | 114-115 | CERT |
Day of the month the P-1 was signed, plus 40 if it was posted in the following month; 77 means a prior period and 00 clears the date. Zero in every row of the August 2026 tape. | — |
| 23 |
batch
|
text | 116 | BATCH |
RRC's internal batch letter for a bundle of P-1 update forms. Blank in every row of the current tape. | — |
| 24 |
lease_prod_basis
|
smallint | 117 | L-LPB |
1 when the lease may produce on a lease basis -- the whole lease allowable from any well on it -- rather than well by well. 1,151 rows. | — |
| 25 |
commingle_code
|
smallint | 118 | COMMINGLE-CD |
Status of the lease's oil commingling permit: 0 not used, 1 permit in effect (38,099 rows), 2 terminated (5,713), 4-6 the permit-number changes. | — |
| 26 |
commingle_no
|
smallint | 119-122 | COMMINGLE |
The commingling permit number, or one of RRC's permit codes: 8888 gas plant, 9999 multiple permits, 9898 casinghead with different royalty interests, 9696 gas metering, 9595 lease automatic custody transfer. | — |
| 27 |
lease_info
|
text | 123-176 | L-INFO |
Free-text note from a proration analyst that prints on the schedule. Set on 1,910 leases. | — |
| 28 |
adj_oil_status
|
integer measured in bbl | 177-180 | AD-BO-STATUS |
A replacement beginning oil balance, used when a well was added to or dropped from the lease inside the twelve months; the month it took effect carries change_status_code 1. Zero in every row of the August 2026 tape. | — |
| 29 |
adj_gas_status
|
integer measured in MCF | 181-184 | AD-BG-STATUS |
The same adjustment for the gas balance. Zero throughout the current tape. | — |
| 30 |
commingle_yyyymm
|
integer | 185-190 | COMMINGLE-DATE |
Month the commingling permit took effect, CCYYMM. Set on 43,457 leases. | — |
| 31 |
removal_code
|
smallint | 191 | L-RMCD |
Why the lease left the proration schedule: 0 it did not, 1 plugged, recompleted or plugged back (12,528 rows), 2 consolidated, unitised, subdivided or otherwise transferred (1,623). | — |
| 32 |
removal_yyyymm
|
integer | 192-197 | L-RMDT |
Month the lease was removed from the schedule, CCYYMM. Set on 869 leases. | — |
| 33 |
sev_code_13
|
smallint | 198 | SEV-CD-13 |
Severance status in the month after the last one on the tape: 0 not severed, 1 severed (21,076 rows), 2 reconnected. A severance letter stops oil and gas leaving the lease until it is back in compliance. | — |
| 34 |
sev_code_14
|
smallint | 199 | SEV-CD-14 |
Severance status two months after the last month on the tape. Same codes. | — |
| 35 |
casinghead_si_letter_yyyymm
|
integer | 200-205 | L-CAS-SI-LTR-DTE |
Month a casinghead shut-in letter went to the operator, CCYYMM. Set on five leases in the August 2026 tape. | — |
| 36 |
reduced_rate_yyyymm
|
integer | 206-211 | L-RED-RTE-DTE |
Month a reduced-rate allowable took effect after a casinghead shut-in letter, CCYYMM. Empty throughout the current tape. | — |
| 37 |
exc_test
|
smallint | 212 | L-EXC-TST |
The lease's exception to W-10 testing: 0 the field's regular test (94,299 rows), 1 none required, 2 no commingle test because the lease is metered (3,089), 3 survey only, 4 partial commingle, 5 and 6 lease automatic custody transfer, 7-9 a district-office month's grace. | — |
| 38 |
royalty_code
|
smallint | 213 | L-RLTYCD |
Whether the lease is on state land: 0 private, 1 public school land, 2 the University of Texas system, 3 another state fund. | — |
| 39 |
one_well_lease
|
text | 214 | L-ONE-WELL-LEASE |
'Y' on a lease with a single uncommingled well producing on a valid allowable, which exempts it from W-10 testing. Set once a year at the annual survey; 16,270 of 98,388 leases. e.g. N | — |
| 40 |
panhandle_gor_exc
|
text | 215 | L-PANHANDLE-GOR-EXC |
'Y' where the lease may test on a lease basis instead of well by well because its annual gas-oil ratio is 5,000 cubic feet per barrel or less. The manual describes this as applying only to eight Panhandle field numbers; the August 2026 tape carries 'Y' on 46,511 of 98,388 leases, so treat it as a lease-basis test flag rather than a Panhandle marker. | — |
| 41 |
panhandle_gor_amt
|
numeric measured in MCF/bbl | 216-220 | L-PANHANDLE-GOR-AMT |
The calculated annual gas-oil ratio for the lease, in thousand cubic feet per barrel to one decimal place. Anything above 5.0 has been forced to 5.1 to mark a lease that does not qualify -- so values between 5.1 and the tape's maximum of 25,079.0 are real ratios from leases that never had the flag applied. | — |
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 — Leases joins to Oil Ledger — Lease Months on District and Field number and Operator number and Lease number — one row here matches many rows 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
Oil Ledger — Leases joins to Oil Ledger — Wells on District and Field number and Operator number and Lease number — one row here matches many rows there.
has the wells
From a lease to the wells that carry its allowable. 4,111 of 5,000 sampled leases have well records; the ones that do not are on lease allowables through a multi-well group, and their wells are on the detail-well tape instead.
oil-ledger-leases.district = oil-ledger-wells.district AND oil-ledger-leases.field_no = oil-ledger-wells.field_no AND oil-ledger-leases.operator_no = oil-ledger-wells.operator_no AND oil-ledger-leases.lease_no = oil-ledger-wells.lease_no
Oil Ledger — Leases joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
is operated by
The P-5 number on the lease record resolved to the operator directory. All 5,000 sampled leases resolve. Both columns are integers here, so this is one of the few operator joins in the catalogue that needs no cast.
oil-ledger-leases.operator_no = p5-organization-ascii.id
Oil Ledger — Leases joins to PDQ Lease Production by Cycle on District = District name and Lease number = Lease number — one row here matches many rows there.
produced, by month
The join that puts the schedule beside the production: the allowable the ledger assigned against the volumes PDQ reports. Restrict the PDQ side to oil_gas_code = 'O' -- a gas well carries the same digits in the same lease_no column, and 298 of 5,000 sampled oil leases collide with one. 3,773 of 5,000 sampled leases match on the columns as they stand. The 1,227 that do not are every lease in 6E, 7B, 7C and 8A: the ledger writes 06E and PDQ writes 6E. Strip the leading zero and all 5,000 match. These two columns are different types — one is text, the other an integer — so a direct equality is rejected by Postgres. Cast the text side to integer, which also disposes of any leading zeros; casting the integer to text would not, because '000123' and 123 are not equal as text.
oil-ledger-leases.district = pdq-lease-cycle.district_name AND oil-ledger-leases.lease_no = pdq-lease-cycle.lease_no
Oil Ledger — Leases joins to PDQ Regulatory Lease Directory on District = District name and Lease number = Lease number — one row here matches one row there.
is the regulatory lease
The lease's entry in PDQ's regulatory directory, which carries its off-schedule and severance flags. 3,848 of 5,000 sampled leases match as the columns stand and all 5,000 once the district's leading zero is stripped; the operator number agrees on every one of them, which is what makes it the same lease rather than a collision. Restrict PDQ to oil_gas_code = 'O'. These two columns are different types — one is text, the other an integer — so a direct equality is rejected by Postgres. Cast the text side to integer, which also disposes of any leading zeros; casting the integer to text would not, because '000123' and 123 are not equal as text.
oil-ledger-leases.district = pdq-regulatory-lease-directory.district_name AND oil-ledger-leases.lease_no = pdq-regulatory-lease-directory.lease_no
Oil Ledger — Leases joins to PDQ Lease Summary (master) on District = District name and Lease number = Lease number — one row here matches one row there.
has a production summary
From the lease record to the first and last cycles PDQ holds production for, which is the cheapest way to tell a dead lease from a live one. 3,754 of 5,000 sampled leases match as the columns stand; the missing quarter is the four lettered districts. Restrict PDQ to oil_gas_code = 'O'. These two columns are different types — one is text, the other an integer — so a direct equality is rejected by Postgres. Cast the text side to integer, which also disposes of any leading zeros; casting the integer to text would not, because '000123' and 123 are not equal as text.
oil-ledger-leases.district = pdq-lease-summary.district_name AND oil-ledger-leases.lease_no = pdq-lease-summary.lease_no
Oil Ledger — Leases joins to Oil Ledger — Multi-Well Groups on District and Field number and Operator number and Lease number — one row here matches many rows there.
has the multi-well groups
From a lease to the well groups on it that take one allowable between them. 191 of 5,000 sampled leases have one -- a lease is either scheduled well by well or by group, and the second is much the rarer.
oil-ledger-leases.district = oil-ledger-multiwell-groups.district AND oil-ledger-leases.field_no = oil-ledger-multiwell-groups.field_no AND oil-ledger-leases.operator_no = oil-ledger-multiwell-groups.operator_no AND oil-ledger-leases.lease_no = oil-ledger-multiwell-groups.lease_no
Oil Ledger — Leases joins to Oil Ledger on District and Field number — many rows here share a single row there.
contains the leases
The LEASE records that follow a field record on the tape. Only 1,897 of 5,000 sampled fields have any: two thirds of the 33,939 field records are fields nothing is currently produced from, and they are carried anyway because the schedule is a register of fields, not of production.
oil-ledger.district = oil-ledger-leases.district AND oil-ledger.field_no = oil-ledger-leases.field_no
Oil Ledger — Leases joins to Oil Detail Well on District and Field number and Operator number and Lease number — one row here matches many rows there.
is on the lease
From a well inside a multi-well unit to the lease record that holds its balances and its gatherers. 4,963 of 5,000 sampled detail wells match. Both files are the same tape family, so the district spelling and the key layout agree and nothing needs normalising.
oil-detail-well.district = oil-ledger-leases.district AND oil-detail-well.field_no = oil-ledger-leases.field_no AND oil-detail-well.operator_no = oil-ledger-leases.operator_no AND oil-detail-well.lease_no = oil-ledger-leases.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
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.