Gas Ledger — Wells
Queryable EBCDIC
Every gas well on the proration schedule, with its gatherers, pressures and balances.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Gas 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 WELL records of GSA020K: 140,992 rows, one per gas well, keyed on the six-digit RRC gas well identification number that is unique across Texas. Each carries the well's lease name and county, its status, the companies that gather its gas and its condensate, its depth and perforations, its commingling permit, its G-1 open-flow potential and back-pressure slope, its gas and condensate gravity, and the balancing account the Commission runs for it.
This is the gas counterpart of the oil ledger's lease and well records at once: a gas well is its own accounting unit.
What you can do with it
Find the gas wells a given pipeline gathers for, read the deliverability and pressures behind a well's allowable, and follow the six-month balancing accounts that decide whether a well must underproduce to make up an overage.
Gotchas
gas_rrc_id is the join key to everything else: PDQ carries it as lease_no with oil_gas_code = 'G' and the G-10 file as rrc_id. It changes when a well is worked over significantly, so it identifies a completion rather than a hole in the ground; well_no survives the workover instead.
The district is the ledger's spelling (07B, 07C, 08A) where the G-10 and PDQ write 7B, 7C, 8A.
open_flow is null on 97,379 of 140,992 wells because the tape wrote all nines, which is RRC's 'not reported'. lmt_allow is null on 137,984 for the same reason -- there the sentinel means 'no limited allowable', which is the normal state.
The tape carries values the 1990 manual does not list: '(' in well_type and exc_14b on 5,146 wells, 'H' in exc_14b on 3,836, and 7 in exc_test on 11,616. The column descriptions give the manual's own lists and say plainly which values are not in them.
ex14b_date is empty in every row even on the 29,662 wells whose 14(B)(2) exception is in effect, and si_amt, si_code, g4_code, exc_prod_limit and ex14b2_app_no are empty or zero throughout.
completion_date runs from a 1900-01-03 placeholder to 2070, so dates outside living memory are bad digits rather than history.
Record layout
70 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
gas_ledger_well
70 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
district
key
join
|
text | 2-4 | W-DISTR |
RRC district the well is in, as the ledger tape writes it -- 07B, 07C, 08A with the leading zero, where the G-10 file and PDQ write 7B, 7C, 8A. e.g. 01 | RRC district (proration ledger spelling) |
| 2 |
field_no
key
join
|
integer | 5-12 | W-PERM-FLD-ID |
The eight-digit RRC field number the well produces from. e.g. 2001 | — |
| 3 |
operator_no
key
join
|
integer | 13-18 | OPER-ID |
P-5 organization number of the well's operator. e.g. 36043 | — |
| 4 |
gas_rrc_id
key
join
|
integer | 19-24 | WELL-ID |
The gas well's six-digit RRC identification number, which uniquely identifies it statewide: 140,992 distinct values in 140,992 rows. PDQ carries the same number as lease_no for oil_gas_code = 'G', and the G-10 file as rrc_id. It changes if the well is worked over significantly. e.g. 273598 | — |
| 5 |
well_no
|
text | 26-31 | WELL-NO |
The operator's well number -- tract, well number and suffix -- right-justified in six bytes, so 123,566 of the 140,992 rows carry leading blanks. Unlike the RRC id it survives a workover. e.g. ' 1H' | — |
| 6 |
lease_name
|
text | 32-63 | LSE-NAME |
The lease name from Form P-4, up to 32 characters. Personal names are written last name first. e.g. WHITWORTH | — |
| 7 |
county_code
|
smallint | 64-66 | CO-CODE |
Three-digit code of the county the well's perforations are in, which is not necessarily the county of its surface location. e.g. 323 | — |
| 8 |
well_type
|
text | 67 | W-TYPE |
Current status: blank regular producing (98,548 rows), K shut-in and dead (30,628), J temporarily abandoned, R dry hole, sealed or non-producing, Z not eligible for an allowable, A abandoned, I injection, H shut-in but capable, D disposal, F no production for three months, N new, S shut-in pending connection, U shut-in awaiting connection. The tape also carries '(' on 5,146 wells, which GSA020K does not list. e.g. K | — |
| 9 |
gas_gatherer_old
|
text | 68-72 | GAS-GATHER-OLD |
Five-character code of the gatherer that moved the well's gas before the present one. | — |
| 10 |
gas_gatherer
|
text | 73-77 | G-GATH |
Five-character code of the well's present main gas gatherer. Set on 132,873 of 140,992 wells; the company's name is in the operator directory. e.g. TXPLL | — |
| 11 |
full_stream
|
text | 78 | FULL-S |
'X' when the gas goes full stream into a pipeline. 5,379 wells. | — |
| 12 |
gas_split
|
text | 79 | GAS-SPLIT |
'X' when the well has more than one gas gatherer, in which case gas_gatherer_2 and gas_gatherer_3 name them. 7,697 wells. | — |
| 13 |
gas_gatherer_2
|
text | 80-84 | GASGATH2I |
Second gas gatherer, where gas_split is set. | — |
| 14 |
gas_gatherer_3
|
text | 85-89 | GASGATH3I |
Third gas gatherer, where one exists. | — |
| 15 |
liq_gatherer_old
|
text | 90-94 | LIQ-GATHER-OLD |
Five-character code of the previous gatherer of the well's condensate. | — |
| 16 |
liq_gatherer
|
text | 95-99 | L-GATH |
Five-character code of the well's present condensate gatherer, or the main one where there is more than one. Set on 108,489 wells. | — |
| 17 |
liq_split
|
text | 100 | LIQ-SPLIT |
'X' when the well has more than one condensate gatherer. 26,633 wells. | — |
| 18 |
well_info
|
text | 101-122 | WELL-INFO |
Twenty-two characters of remarks about the well from a proration analyst. Set on 7,396 wells. | — |
| 19 |
batch_no
|
text | 123 | BATCH-NR |
RRC's internal batch letter for a bundle of P-2 gas production reports. | — |
| 20 |
exc_14b
|
text | 124 | EXC-14B |
Why a well with no allowable has not been plugged: 0 no exception (95,203 rows), 1 exception to Statewide Rule 14(B)(2) in effect (29,662), 4 denied, B the inactive side of a multiple completion, P partially plugged, L a legal restriction, U a UIC restriction, and the older 2, 3, 5-9 that RRC stopped using in 1990. The tape also carries 'H' on 3,836 wells (an H-15 violation) and '(' on 5,146, neither of which GSA020K lists. | — |
| 21 |
ex14b_date
|
date | 125-132 | 14B-DATE |
Date the well's 14(B)(2) exception expires. Empty in every row of the tape fetched in August 2026, even on the 29,662 wells whose exception is in effect. | — |
| 22 |
completion_date
|
date | 133-140 | CMP-DATE |
Date the well was completed -- made ready to produce. Present on 135,576 of 140,992 wells. The range runs from a 1900-01-03 placeholder to 2070, so a date outside living memory in either direction is a bad eight digits. e.g. 2013-02-16 | — |
| 23 |
depth
|
integer measured in ft | 141-145 | W-DEPTH |
Total depth the well was drilled to, in feet. The deepest here is 26,160. e.g. 5940 | — |
| 24 |
upper_perf
|
integer measured in ft | 146-150 | UP-PERF |
Depth in feet of the highest perforation in the completion. | — |
| 25 |
lower_perf
|
integer measured in ft | 151-155 | LO-PERF |
Depth in feet of the lowest perforation in the completion. | — |
| 26 |
commingle_code
|
smallint | 156 | COMMCD |
Status of the well's commingling permit: 0 not used (74,379 rows), 1 in effect (59,439), 2 terminated, 4-6 the permit-number changes. | — |
| 27 |
commingle_no
|
smallint | 157-160 | COMM |
The commingling permit number, or one of RRC's codes: 8888 gas plant, 9696 gas metering, 9595 lease automatic custody transfer. Gas wells only ever commingle under those three. | — |
| 28 |
commingle_date
|
date | 161-168 | COMN-DTE |
Date the commingling permit was granted. Set on 66,151 wells. | — |
| 29 |
dpt_code
|
text | 169 | DPT-CODE |
Whether the well is excused the G-10 daily production test: 0 regular (108,158 rows), 1 no test necessary, 2 use the G-1 deliverability, 3 use the P-2 production, 4 use the average of four nearby wells, 5 exempt because deliverability is under 100 MCF (30,911). | — |
| 30 |
bhp_code
|
text | 170 | BHP-CODE |
Whether the well is excused the G-10 bottom-hole pressure test where field rules require one. 0 regular on all but 155 wells. | — |
| 31 |
sip_code
|
text | 171 | SIP-CODE |
Whether the well is excused the G-10 shut-in pressure test: 0 regular (103,502 rows), 1 no test necessary (35,567). | — |
| 32 |
g4_code
|
text | 172 | G-4-CODE |
Whether the well is excused the G-10 potential test. Zero -- regular -- in every row of the August 2026 tape. | — |
| 33 |
exc_test
|
text | 173 | WL-TSTX |
The well's exception to G-10 testing: 0 none (90,715 rows), 1 no G-10 testing required (31,498), 2 no commingle test, 4 a temporary exception for a new well, 5 and 6 lease automatic custody transfer. The tape also carries 7 on 11,616 wells, which the manual does not list. | — |
| 34 |
g10_due
|
smallint | 174-175 | G-10-DUE |
The month the well's next G-10 becomes effective on the schedule. The operator gets three months to test; results are due on the first of the fourth month and effective on the first of the fifth. e.g. 1 | — |
| 35 |
date_last_utilized
|
date | 176-183 | DTE-L-UTL |
Date the well was last used. Set on seven wells in the whole August 2026 tape, so read its absence as 'not recorded' rather than 'still producing'. | — |
| 36 |
pa_code
|
smallint | 184 | WL-PA-CD |
Why the well left the gas schedule: 4 plugged and abandoned (1,198 rows), 5 worked over to another zone, 6 reclassified to oil, 7 exempt from Statewide Rule 10, 8 a disposal or holding status, 9 plugged and abandoned with no ledger comment (1,002). | — |
| 37 |
pa_date
|
date | 185-192 | P-A-DATE |
Date the well was removed from the gas proration schedule. Set on 1,258 wells. | — |
| 38 |
special_allow
|
integer measured in MCF | 193-199 | SP-ALLOW |
The amount of the special allowable the Commission assigned the well, in MCF. Non-zero on 62,466 wells. | — |
| 39 |
special_allow_code
|
text | 200 | SP-AL-CODE |
What kind of special allowable: blank an associated 49(b) daily rate, C non-hearing daily (57,871 rows), H granted by hearing, D granted by Commission action daily, S monthly, L reduced at the operator's request, P based on the third prior month's production, X exempt, A like D with underage carried, E a Rule 28/29 exception. | — |
| 40 |
liq_allow
|
integer measured in bbl | 201-205 | LIQ-ALLOW |
The condensate allowable assigned to the well, in barrels, in fields that have one. Non-zero on 56 wells. | — |
| 41 |
liq_allow_code
|
smallint | 206 | LIQ-ALLOW-CODE |
What kind of condensate allowable: 0 none, 3 a limit subject to the oil production factor, 4 a daily limit, 5 a monthly limit. | — |
| 42 |
form_lacking
|
smallint | 207 | FORM-LACKING |
Why an allowable is being withheld: 0 nothing lacking (127,318 rows), 1 another form, 2 a delinquent G-10, 3 an incomplete G-10, 4 no production, 5 plugged but still filing P-2s for condensate (1,097), 6 a delinquent P-2. | — |
| 43 |
offshore
|
smallint | 208 | OFF-SHORE |
Where the well is: 0 land, 1 state bays and estuaries, 2 state offshore from islands, 3 federal, 4-9 combinations. In practice only 0, 1 and 2 are used. | — |
| 44 |
top_pct
|
numeric | 209-213 | WL-TOP-PER |
The percentage of the field's total deliverability this well contributes, three whole numbers and two decimals. Non-zero on 10,123 wells. | — |
| 45 |
royalty_code
|
smallint | 214 | ROYALTY-CODE |
Whether the well is on a state lease: 0 not (140,005 rows), 1 school land, 2 university, 3 another state fund. | — |
| 46 |
prior_rinu
|
integer | 215-219 | PRIOR-RINU |
Underproduction that had been cancelled and was reinstated at a hearing, for the balancing period before the current one, in MCF. | — |
| 47 |
prior_rinu_yyyymm
|
integer | 220-225 | PRIOR-RINU-DATE |
Month that reinstated underage was added to the balance, CCYYMM. | — |
| 48 |
rinu
|
integer | 226-230 | RINU |
Underproduction cancelled and then reinstated at a hearing, for the current balancing period, in MCF. | — |
| 49 |
rinu_yyyymm
|
integer | 231-236 | RINU-DATE |
Month the current reinstated underage was added to the balance, CCYYMM. | — |
| 50 |
ex14b2_type
|
text | 237 | EXC-14B2-TYPE |
How the well's 14(B)(2) exception is covered: B blanket bond, M mini-bond, S single lease, R secondary recovery project, W a W-1X, N none. '0' in every row of the August 2026 tape, which is none of those. | — |
| 51 |
g1_date
|
date | 239-246 | G-1-DATE |
Date of the open-flow potential test on the G-1 filed when the well was completed. Present on 127,614 wells. | — |
| 52 |
open_flow
|
integer measured in MCF | 247-250 | OPEN-FLO |
The well's G-1 open-flow potential in MCF, from the back-pressure test at completion. Null where the tape carried all nines, which is RRC's 'not reported' -- and that is most of the file: only 43,613 of 140,992 wells have a value. | — |
| 53 |
slope
|
numeric | 251-253 | SLOPE |
Slope of the line through the four-point back-pressure test that determines the well's potential, one whole number and four decimals. Non-zero on 9,927 wells. | — |
| 54 |
ratio
|
integer measured in cf/bbl | 254-256 | RATIO |
The well's gas-liquid ratio in cubic feet per barrel. The statutory line between a gas well and an oil well is 100,000; the column's maximum here is 99,999, which is the largest five digits will hold rather than a measurement. | — |
| 55 |
gas_gravity
|
numeric | 257-258 | G-GRAV |
Specific gravity of the well's gas, air = 1, to three decimals. Stored scaled; the tape wrote it packed with the point implied. | — |
| 56 |
oil_gravity
|
numeric measured in API | 259-260 | O-GRAV |
API gravity of the well's condensate, two whole numbers and one decimal. Stored scaled. | — |
| 57 |
beg_gas_status
|
integer measured in MCF | 261-265 | BGS |
The well's gas balancing status in MCF before the fourteen months on this tape. Non-zero on 4,858 wells -- balancing applies to a small minority. | — |
| 58 |
beg_liq_status
|
integer measured in bbl | 266-270 | BLS |
The well's condensate status in barrels before the fourteen months on this tape. | — |
| 59 |
prior_6
|
integer measured in MCF | 271-275 | PRIOR-6 |
The well's balance at the end of the previous six-month balancing period, in MCF, for wells under the balancing rule. | — |
| 60 |
prior_cancelled_underage
|
integer measured in MCF | 276-279 | PCU |
Underproduction cancelled when the previous six-month balance was struck, in MCF. | — |
| 61 |
curr_bal
|
integer measured in MCF | 280-284 | CURR-BAL |
The well's balance for the current six-month balancing period, in MCF. | — |
| 62 |
cancelled_underage
|
integer measured in MCF | 285-288 | CANCEL-G |
Underproduction cancelled when the current six-month balance was struck, in MCF. | — |
| 63 |
gas_status
|
integer measured in MCF | 289-293 | G-STATUS |
Cumulative gas production status as of the last reported period, in MCF. Meaningful only for a well under the balancing rule. | — |
| 64 |
liq_status
|
integer measured in bbl | 294-297 | L-STATUS |
Cumulative condensate status as of the last reported period, in barrels. Used only for wells on a liquid limit allowable. | — |
| 65 |
lmt_allow
|
integer measured in MCF | 298-301 | LMT-ALLOW |
The well's '@' limited allowable in MCF -- assigned after it underproduced through two consecutive balancing periods. Null where the tape carried all nines, meaning no limit, which is 137,984 of 140,992 wells. | — |
| 66 |
si_amt
|
integer measured in MCF | 302-306 | SI-AMT |
Overproduction a shut-in well must make up, in MCF. Zero in every row of the August 2026 tape. | — |
| 67 |
si_code
|
smallint | 307 | SI-CODE |
Why the well was shut in: 1 House Bill 206, 2 balancing, 3 liquid balancing. Zero in every row of the current tape. | — |
| 68 |
exc_prod_limit_code
|
smallint | 308 | EXCEPTION-TO-PROD-LIMIT-CODE |
Length of an exception to the well's production limit: 1, 2 or 3 months. Zero in every row of the current tape. | — |
| 69 |
exc_prod_limit
|
integer measured in MCF/d | 309-312 | EXCEPTION-TO-PROD-LIMIT |
The daily amount allowed under that exception, in MCF, calculated from a G-10. Zero throughout the current tape. | — |
| 70 |
ex14b2_app_no
|
integer | 313-316 | EXC-14B2-APP-NO |
Application number of the well's 14(B)(2) coverage, RRC's key into its own exception database. Zero in every row of the current 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.
Gas Ledger — Wells joins to Gas Ledger — Well Months on District and Field number and Operator number and Gas RRC ID — one row here matches many rows there.
has fourteen months of allowable and production
The MONTHLY-WELL group of the gas well record: the month's allowable, the gas the operator reported on Form P-2, the condensate, the pressures and the word allowable. All 5,000 sampled wells carry all fourteen.
gas-ledger-wells.district = gas-ledger-well-months.district AND gas-ledger-wells.field_no = gas-ledger-well-months.field_no AND gas-ledger-wells.operator_no = gas-ledger-well-months.operator_no AND gas-ledger-wells.gas_rrc_id = gas-ledger-well-months.gas_rrc_id
Gas Ledger — Wells 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 gas well record resolved to the operator directory. All 5,000 sampled wells resolve, and both columns are integers, so no cast is needed.
gas-ledger-wells.operator_no = p5-organization-ascii.id
Gas Ledger — Wells joins to PDQ Lease Production by Cycle on District = District name and Gas RRC ID = Lease number — one row here matches many rows there.
produced, by month
The gas schedule beside the gas production: PDQ carries a gas well as a lease, keyed on the same six-digit RRC id. Restrict the PDQ side to oil_gas_code = 'G' -- 43 of 5,000 sampled wells collide with an oil lease of the same digits. 4,200 of 5,000 match on the columns as they stand and all 5,000 once the district's leading zero is stripped. 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.
gas-ledger-wells.district = pdq-lease-cycle.district_name AND gas-ledger-wells.gas_rrc_id = pdq-lease-cycle.lease_no
Gas Ledger — Wells joins to Gas Well Status (26 Month G-10) on District = District and Gas RRC ID = RRC ID — one row here matches many rows there.
was tested on the G-10 as
From the gas schedule to the deliverability tests behind it. 1,393 of 5,000 sampled ledger wells match on the columns as they stand; 1,621 once the ledger's leading zero is stripped from 07B, 07C and 08A. The ceiling is low for a reason that is not the spelling: the G-10 file RRC publishes was cut in late 2021 and holds no test after November of that year, so two thirds of today's gas wells have no row in it at all. rrc_id alone matches exactly as many as district and rrc_id together, because the id is unique statewide.
gas-ledger-wells.district = gas-well-status-g10.district AND gas-ledger-wells.gas_rrc_id = gas-well-status-g10.rrc_id
Gas Ledger — Wells joins to PDQ Regulatory Lease Directory on District = District name and Gas RRC ID = Lease number — one row here matches one row there.
is the regulatory lease
The gas well's entry in PDQ's regulatory directory, which carries its off-schedule and severance flags. 4,232 of 5,000 sampled wells match as the columns stand and all 5,000 with the district normalised. Restrict PDQ to oil_gas_code = 'G'. 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.
gas-ledger-wells.district = pdq-regulatory-lease-directory.district_name AND gas-ledger-wells.gas_rrc_id = pdq-regulatory-lease-directory.lease_no
Gas Ledger — Wells joins to Gas Ledger on District and Field number — many rows here share a single row there.
contains the gas wells
The WELL records that follow a gas field record on the tape. 1,243 of 5,000 sampled fields have any: the gas ledger registers far more fields than currently have a scheduled well.
gas-ledger.district = gas-ledger-wells.district AND gas-ledger.field_no = gas-ledger-wells.field_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 gas ledger.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.gas_ledger_well
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.