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.

Preview the first 100 rows

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

Record layout for oil_ledger_lease — 41 columns, with byte positions
# 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.

RRC district (proration ledger spelling) — 14 codes and their meanings
CodeMeans
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.