Get the data

Heads up on Original: the Commission does not publish this table on its own. It publishes Historical Ledger — Statewide Gas, 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 02 LDGSDATA segment of S.LDF900GS on its own: 42,897,545 rows, one per gas RRC id 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 nobody wants the 219,384 balance rows when what they came for is the history.

Each row is a month of a well's regulatory life. The allowable RRC assigned and the code that explains it; the word allowable ('14B2 EXT', 'SWR 10', 'DLQ G-10') where no number was assigned at all; the gas produced and the condensate produced, at the lease and at the plant; the month's status and the cumulative overage; the well type and its 14(b)(2) code; and the operator and field the well belonged to THAT month, which is what makes this a history rather than a snapshot -- 12,351 distinct operator numbers appear across the file and all 12,351 resolve in the P-5 directory.

Everything is stored to the month: 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 one well's allowable against its production for thirty-one years; find every month in a field where the allowable was denied rather than assigned; total gas by district and year across the whole state; or take a single year -- 1,400,000-odd rows -- and join it to the P-5 directory to see who was operating what.

Gotchas

PRODUCTION IS WET, the volume charged against the allowable. The dry figure PDQ publishes is this minus the code-9 disposition on the parent dataset's hist_gas_disposition table: in cycle 202406 that identity holds on 141,447 of 141,466 wells.

FILTER ON THE CYCLE. The table is 42.9M 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 all thirty-two partitions.

THE DISTRICT IS THE INTERNAL NUMBER, 01-14: 08 is District 7B, 11 is 8A. Same as PDQ, not the same as the gas proration ledger or the G-10.

wlroot_key is the eight-digit well-database root key, and it is the only route from this tape to a well's survey and removal history. It is set on 42,700,467 of the 42,897,545 months. 219,039 distinct keys appear; 136,278 of them are in the current gas well database, and where they match, the well database names the same district and RRC id on 136,278 of 136,297 -- the shortfall is wells that have since left the schedule, not a bad key. None of them matches the OIL well database, which is as it should be.

allowable and top_sched_allowable are both whole-month figures in MCF and both are stored in full -- unlike the live production tape's balancing_allow_amt, which keeps only its low five digits. The largest allowable here is 435,608,001 MCF.

word_allowable is null on 32,126,231 months. It is only written when no numeric allowable was assigned, and the tape keeps its leading blanks: ' T. A.' and ' SWR 10', not 'T. A.'.

cond_limit is zero in every row, rein_underage_date is null in every row, and cumulative_overage carries 999,999,999 on 338,162 months as the manual's 'underage voluntarily cancelled' sentinel. balancing_rule_code is 'B' or null and never the copybook's N, R, C, S or L; allowable_code carries four values appendix A does not list; well_type carries 'RT' on 987,220 months, which no RRC list explains.

undoc_packed_145 and undoc_packed_150 are two packed fields the 2005 copybook calls FILLER. Set on 77.9% of rows and rising to 100% from 2006. Meaning unknown.

Record layout

40 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_gas_well_cycle 40 columns

Record layout for hist_gas_well_cycle — 40 columns, with byte positions
# 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. 01 RRC district (internal number)
2 gas_rrc_id key join integer LDROOT-RRCID-NBR The well's RRC gas identifier as a whole number. Unique statewide -- 219,384 wells, 219,384 distinct ids -- so unlike the oil lease number it can be filtered and joined on by itself. e.g. 130821
3 cycle_yyyymm key join integer 3-6 LDGSDATA-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. 199301
4 operator_no join integer 7-12 LDGSDATA-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. 12,351 distinct numbers appear across the file and all 12,351 of them resolve in the P-5 operator directory. e.g. 844118
5 field_no join integer 13-17 LDGSDATA-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. 42803
6 field_reservoir_no integer 18-20 LDGSDATA-FIELD-RESERVOIR-NO The three-digit reservoir number under the field, the low end of RRC's eight-digit field key. Non-zero on 42,894,558 of the 42,897,545 rows. e.g. 749
7 field_type text 21 LDGSDATA-FIELD-TYPE 'A' where the gas field is associated with an oil field and 'N' where it is not -- 7,933,942 and 34,963,555 months. The manual says outright that the item is no longer maintained, so read it as the classification RRC last set rather than as current fact. e.g. N
8 type_field_code text 22-23 LDGSDATA-TYPE-FIELD-CODE How the field's monthly allowable is calculated, which is the single most useful classification on the tape: CA capacity (30,731,755 months), PR prorated (3,755,475), ON one-well (3,181,303), EX exempt (2,965,226), 49 rule 49B (1,973,702), ST storage, SV salvage, LQ liquid limit. The copybook's CY (cycling) and SP (special) never appear. e.g. CA
9 balancing_field_flag text 24 LDGSDATA-BALANCING-FIELD-FLAG 'Y' where the field balances -- prorated fields, and 49B fields under regular balancing rules. 3,914,097 months. The tape leaves it blank rather than writing 'N', so null is the negative.
10 balancing_rule_code text 25 LDGSDATA-BALANCING-RULE-CODE Which balancing rule the field's wells are under. THE TAPE AND THE COPYBOOK DISAGREE: the copybook lists N none, R regular, C, S and L, and not one of those five appears anywhere on the file. What does appear is 'B', on 4,717,671 months, with the remaining 38,179,874 blank. Treat it as a flag that a balancing rule applied rather than as the copybook's five-way code.
11 well_no text 26-31 LDGSDATA-WELL-NUMBER The operator's own well number, six characters, WITH the tape's leading blanks kept: ' 3' and ' 1H', not '3'. The manual describes an elaborate positional convention (the first byte may be alphabetic, the fifth and sixth may be) which is why the padding is significant and is not stripped. Set on 42,701,894 months. e.g. 3
12 wlroot_key join integer 32-39 LDGSDATA-WLROOT-KEY RRC's internal eight-digit well-database root key -- 'a number which will never change, even if the well changes to a different lease', in the manual's words. It is the only route from this tape to a well's survey, 14(b)(2) history and removal record. Non-zero on 42,700,467 months over 219,039 distinct keys, of which 136,278 are in the current statewide gas well database; where they match, that database names the same district and RRC id on 136,278 of 136,297. The shortfall is wells that have left the schedule since, not a bad key -- and none of these keys matches the OIL well database, which is how it should be. e.g. 307090
13 p2_filed text 40 LDGSDATA-P2-FILED-FLAG 'Y' where a Form P-2 was filed for the cycle before it rolled off the live database, on 36,952,919 months. The tape writes '0' (1,706,523) or nothing (4,236,639) rather than the copybook's 'N', which appears on 1,464 rows in the whole file. e.g. Y
14 corrected_p2 text 41 LDGSDATA-CORRECTED-P2-FLAG 'Y' where a report was filed after the cycle had already rolled off -- a historical correction, on 1,652,690 months.
15 word_allowable text 42-49 LDGSDATA-WORD-ALLOWABLE The REASON no numeric allowable was assigned, written as a word rather than a number, and it is one of the most readable things on the tape: '14B2 EXT' (5,530,195 months), ' T. A.' (1,121,213), ' SWR 10' (985,395), '14B DENY' (752,293), 'PRTL PLG', 'SI MULT', 'DLQ G-10', 'INJECT', ' SHUT IN'. Null on 32,126,231 months, where a number was assigned instead. The tape's leading blanks are kept, so match with 'contains' rather than 'equals'.
16 allowable integer measured in MCF 50-54 LDGSDATA-ALLOWABLE The maximum gas the well was allowed to produce for the cycle, in MCF -- the daily allowable times the days in the month. Non-zero on 29,229,859 months and reaching 435,608,001 MCF. It is stored in FULL here, unlike statewide-production-data-gas's balancing_allow_amt, which keeps only its low five digits. e.g. 110403
17 well_type text 55-56 LDGSDATA-WELL-TYPE The well's type that cycle, off the well database: PR producing (27,620,707 months), TA temporarily abandoned (5,935,290), SH shut-in, PP partial plug, ZZ not eligible for an allowable, IN injection, SM shut-in multiple completion, AB plugged and abandoned, DW domestic, GJ/GW gas storage injection and withdrawal, OB observation, WS water supply, BM brine mining, SD sealed, GT geothermal, TR training. '00' on 5,226,204 months is the tape's zeros placeholder, and 'RT' on 987,220 is in no list RRC publishes. e.g. 00
18 code_14b2 text 57 LDGSDATA-14B2-CODE Statewide Rule 14(b)(2) requires a well be plugged once it stops producing; this is the exception status. 0 none granted (36,326,076 months), 1 extension in effect (5,511,009), 4 denied (791,828), 5 denied over an H-15 violation (45,896). e.g. 0
19 allowable_code text 60-61 LDGSDATA-ALLOWABLE-CODE Appendix A's type-of-allowable code: N special allowable by administrative action (15,948,016 months), X exempt/salvage (11,962,308), K shut-in under a 14(b)(2) exception (7,324,600), # restricted to 100% of the daily production test (1,495,955), J temporarily abandoned, R deliverability plus overage, O delinquent G-10, Z not eligible, I injection, H shut-in, W withheld pending forms, A plugged, S special by Commission action, T incomplete G-10, @ limited to top production, > delinquent P-2, % plugged and abandoned with condensate on hand, D disposal, C cycling. FOUR VALUES ARE NOT IN THE APPENDIX: '(' on 984,441 months, '¢' on 5,892, '00' on 474 and 'G' on 2. The appendix's L and U never appear. e.g. X
20 top_sched_allowable integer measured in MCF 62-66 LDGSDATA-TOP-SCHED-ALLOWABLE The largest allowable RRC's calculate program could have assigned the well this cycle, in MCF -- the ceiling the actual allowable was cut down from. Non-zero on 30,493,955 months, which is more than carry an allowable, because a well limited to zero still has a top. e.g. 58900
21 revised_allow_code text 67-68 LDGSDATA-REVISED-ALLOW-CODE Two characters that are '00' on 11,903,373 months and blank on the other 30,994,172, and nothing else. The copybook's description of this item is a copy-paste of LDGSDATA-ALLOWABLE's and describes an amount rather than a code, so it explains nothing; the tape's own content is all there is to go on. Do not read it as a revised allowable.
22 commingled text 69 LDGSDATA-COMMINGLED-FLAG 'Y' where the lease held an active permit to commingle liquids that cycle -- 11,131,846 months against 31,635,527 'N'.
23 production integer measured in MCF 70-74 LDGSDATA-PRODUCTION MCF of gas the operator reported on the Form P-2 for the cycle. THIS IS THE WET VOLUME, the one charged against the allowable. The dry volume everyone else publishes is this minus the code-9 (separation and extraction loss) disposition: in cycle 202406 that identity equals PDQ's lease_gas_prod_vol on 141,447 of the 141,466 wells both carry, where the raw wet figure matches only 111,614. Non-zero on 29,514,788 months; the largest is 6,891,097. e.g. 38691
24 injection_credit_code text 75 LDGSDATA-INJECTION-CREDIT-CODE What kind of injection credit the G-9 amount beside it is: 0 none (41,692,235 months), 1 injection credit (826). The copybook's 2 gas-lift credit and 3 bank balance never appear.
25 g9_injection integer measured in MCF 76-80 LDGSDATA-G9-INJECTION-AMOUNT MCF of gas credited back to the well for injection under a Form G-9 -- secondary or tertiary recovery, or pressure maintenance. All but unused: non-zero on 826 of the 42,897,545 months, exactly the rows where injection_credit_code is 1.
26 lift_gas_injected integer measured in MCF 81-85 LDGSDATA-LIFT-GAS-INJECTED MCF of gas injected into the well to enhance production. Non-zero on 53,463 months.
27 monthly_status integer measured in MCF 86-90 LDGSDATA-MONTHLY-STATUS THIS cycle's gas status in MCF: production, less the injection credit, less the allowable, plus any overage transfer and reinstated underage. Positive is overproduced, negative underproduced. Non-zero on 18,848,934 months and negative on 17,274,947 of those -- underproduction is the normal state of a Texas gas well. e.g. -71712
28 reinstated_underage integer measured in MCF 91-95 LDGSDATA-REINSTATED-UNDERAGE Gas underage reinstated as of rein_underage_date, in MCF. Reaching the end of its life: non-zero on 14 of the 42,897,545 months.
29 rein_underage_date date 96-103 LDGSDATA-REIN-UNDERAGE-DATE The date the underage above was reinstated, CCYYMMDD on the tape. NULL on every one of the 42,897,545 months -- the tape writes zeros, which decode to no date, even on the 14 rows that carry an amount.
30 overage_transfer integer measured in MCF 104-108 LDGSDATA-OVERAGE-TRANSFER MCF of overproduction the well brought with it from before a workover or a reclassification. Non-zero on 1,386 months.
31 cumu_status integer measured in MCF 109-113 LDGSDATA-CUMU-STATUS The well's cumulative gas status in MCF at the end of this cycle: the previous cycle's figure plus this one's monthly_status, floored at zero in every field type except prorated. Underage is NOT accumulated, which is why it is non-zero on only 2,867,483 months and negative on 750,977 of those.
32 cond_limit integer measured in bbl 114-118 LDGSDATA-COND-LIMIT Zero in all 42,897,545 months. The manual says so itself -- 'data item is not used' -- and the column is carried rather than dropped so the month RRC starts writing it, it appears.
33 cond_plant_production integer measured in bbl 119-123 LDGSDATA-COND-PLANT-PRODUCTION Barrels of liquid separated at a plant and allocated to the well. Non-zero on 626 months in the whole file.
34 cond_lease_production integer measured in bbl 124-128 LDGSDATA-COND-LEASE-PRODUCTION Barrels of condensate separated at the well location, as reported by the operator. This is the condensate figure to use: non-zero on 10,305,553 months. e.g. 286
35 cond_eom_balance integer measured in bbl 129-133 LDGSDATA-COND-EOM-BALANCE Condensate on hand at the end of the month, in barrels -- 'stock on hand': the previous month's balance plus what was produced, less every liquid disposition. Non-zero on 15,712,071 months, and the newest cycle's value is what the live production database opens on (141,267 of 141,466 wells agree for 202406). e.g. 91
36 cancel_underage_flag text 134 LDGSDATA-CANCEL-UNDERAGE-FLAG How the next cycle's cumulative status treats this one's underage: N no cancellation (42,761,384 months), Y cancel, A cancel after the automatic February/August cancellation (1,634), B cancel before it (35). 'Y' appears on 3,794 months, and '0' and 'D' on 474 and 1 respectively, neither of which the copybook lists. e.g. N
37 cumulative_overage integer measured in MCF 135-139 LDGSDATA-CUMULATIVE-OVERAGE MCF of overproduction accumulated since the first cycle of this balancing period. WATCH THE SENTINEL: 999,999,999 on 338,162 months means an underage was voluntarily cancelled during the period, not a billion MCF of overage. Non-zero on 2,394,299 months in all.
38 liquid_cumu_status integer measured in bbl 140-144 LDGSDATA-LIQUID-CUMU-STATUS The cumulative liquid status for wells in liquid-limit fields -- plant liquid plus lease liquid, less the allowable, added to the beginning status. Non-zero on 132 of the 42,897,545 months, because liquid-limit fields are 1,695 of them.
39 undoc_packed_145 integer 145-149 An undocumented nine-digit packed value at byte 145, where the 2005 copybook prints FILLER PIC X(08) VALUE ZEROS. It is really there: 33,416,946 of the 42,897,545 months carry it (77.9%), and the take-up is a rollout rather than a scatter -- 0.03% of 1993 cycles, 3% by 2002, 84.3% in 2003, and 100% of every month from 2006 to the end of the file. The rest hold the EBCDIC zeros the copybook declares, which decode to null. Upstream kept it under its byte position rather than giving it a name it might not deserve. Nobody knows what it counts; do not read it as a quantity. e.g. (null: the tape wrote zeros in 1993)
40 undoc_packed_150 integer 150-152 A second undocumented packed value, five digits, at byte 150 -- the back half of the same eight bytes of FILLER. Set on the same 33,416,946 months, and over all of them it only ever holds 0 (5,995,765), 110 (26,766,924) or 1100 (654,257), which is why it reads as a code rather than an amount. Meaning unknown.

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.

RRC district (internal number) — 14 codes and their meanings
CodeMeans
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 — Gas Well 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 well FOR THAT CYCLE. Every one of the 42,897,545 rows resolves, over 12,351 distinct operator numbers of which all 12,351 are in the P-5 directory -- the only perfect operator column in the family, and better than the oil tape's, which misses four rows. The directory is a snapshot of who is registered today, so a 1990s operator appears with whatever P-5 status it ended on. Both columns are integers, so no cast is needed.

historical-ledger-gas-well-months.operator_no = p5-organization-ascii.id

Historical Ledger — Gas Well Months joins to Statewide Gas Well Database on Wlroot key — many rows here share a single row there.

is the well database record for the well

The most interesting edge on this family, and the only one on either tape that reaches a WELL rather than a lease or an RRC id. LDGSDATA carries RRC's internal eight-digit WLROOT key -- 'a number which will never change, even if the well changes to a different lease', in the manual's words -- and it is the same key WLA001K's root segment is built on. 32,228,787 of the 42,897,545 well-months resolve (75.1%), over 219,039 distinct keys of which 136,278 are in the current gas well database. The shortfall is the well database's own coverage: it holds the 138,901 wells on the schedule now, not every well that has been on it since 1993. The evidence that it is the right key, rather than a number that happens to match: where it resolves, the well database names the SAME district and RRC id as the ledger row on 136,278 of the 136,297 keys that match at all. And not one of the 219,039 matches anything in the OIL well database, which is what a per-tape key should do. Both columns are integers.

historical-ledger-gas-well-months.wlroot_key = statewide-gas-well-database.wlroot_key

Historical Ledger — Gas Well Months joins to Historical Ledger — Statewide Gas on District and Gas RRC ID — many rows here share a single row there.

has its months

The 02 LDGSDATA segment under the root: every month this well reported since January 1993, with its allowable, the word allowable that stood in for it, the production, the overage and the well's type that cycle. All 219,384 wells have at least one, averaging 195, and the longest carry all 378. This is where a reader should be going. The root is 219,384 rows of balances; the months are 42,897,545 rows of history.

historical-ledger-gas.district = historical-ledger-gas-well-months.district AND historical-ledger-gas.gas_rrc_id = historical-ledger-gas-well-months.gas_rrc_id

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 Historical Ledger.)
RRC download link
GoAnywhere MFT
Record layout manual
Our table
texas.hist_gas_well_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.