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.

Preview the first 100 rows

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

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

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.

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.