Get the data

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

GSW384B1, the gas counterpart of the oil annual field table and the same OGA100 manual. One }-delimited row per gas field per report year: the field name and its discovery county, the discovery date and the depth the discovery well was perforated at, wells in the field and wells that produced during the year, gas and condensate produced that year off the P-2s, gas produced cumulatively since 1 January 1970, and up to fifteen free-form remark lines the Commission writes.

RRC publishes it as twelve per-district parts — gsf3841 to gsf384d, with no gsf3847 — and all twelve are loaded here: 42,138 fields for report year 2025, across every district that has gas fields. That makes this the statewide edition of a table the oil twin only has District 10 of.

What you can do with it

Rank gas fields by annual or cumulative production without touching monthly data, take a district's whole gas field inventory in one query, and find fields by discovery decade or by the depth their discovery well was completed at.

Join to the PDQ field directory on district plus field name to pick up the eight-digit field number, which this file does not carry, and from there to monthly production or to the field's spacing rules.

Gotchas

One report year. The current load is 42,138 rows and every one of them is report year 2025 — RRC republishes the same year monthly until the next annual report is cut, and each drop replaces the table. Year-over-year comparison needs snapshots kept as they go by.

There is no field number in this file, only a name. The name plus the district resolves in the PDQ field directory for 42,125 of the 42,138 rows; the thirteen that do not are the twelve 'DISTRICT TOTAL' rows and the one ' TEXAS TOTALS' row, which RRC writes into the field-name column of the last record of each part and which are loaded as published rather than dropped. Exclude them before you sum anything.

The manual has two columns the wrong way round. GSW384B1 lists TOTAL GAS PRODUCED before CYCLING FIELD, and the file writes the cycling flag first and the volume second — verified across all twelve parts, and cross-checked against the gas ledger's cumulative for District 1 WILDCAT. The same reading was applied to the pair after it, so `full_well_stream_flag` precedes `cumulative_gas`. The columns here hold what their names say; the manual is what is wrong. Both flag columns are empty in every row of the current file, so their names follow the manual's order and could not be checked against data.

The associated-field flag is 'A' on 2,166 rows, not the '*' the manual describes.

Discovery dates are published as M-DD-YYYY text and kept both ways: `discovery_date_text` as published (including 670 rows of 'N/A'), `discovery_date` parsed, `discovery_year` extracted. Eight rows carry a two-digit year the mainframe wrote as a four-digit one — '1-01-0028' — and parse to the year 28.

Annual totals here will not exactly match a sum of monthly PDQ production: the annual report is cut at a different time and includes later amendments.

Record layout

35 columns.

gas_annual_field 35 columns

Record layout for gas_annual_field — 35 columns
# Column Type RRC name Meaning Lookup
1 report_year key smallint REPORT_YEAR The year of the annual report. Stored as a number here; the oil twin stores the same item as text. e.g. 2025
2 district key join text DISTRICT The district as RRC prints it (01-06, 7B, 7C, 08, 8A, 09, 10), zero-padded from the one or two characters the file writes. Which part a row came from, and the second element of its key. e.g. 01 RRC district (printed designation)
3 associated_flag text ASSOCIATED_FLAG 'A' when the field produces both oil and gas, on 2,166 of 42,138 rows. The manual says the flag is '*'; the file writes 'A'. e.g. A
4 field_name join text FIELD_NAME The field name: an operator's word, the stratigraphic interval and usually the depth, e.g. A.W.P. (OLMOS). Also where RRC puts the 'DISTRICT TOTAL' and ' TEXAS TOTALS' subtotal rows, one per part. e.g. A.W.P. (OLMOS)
5 county_name text COUNTY_NAME The DISCOVERY county -- the county the field's first well was in, not every county it reaches. 'N/A' where the file left it blank. e.g. MCMULLEN
6 multi_county_flag text MULTI_COUNTY_FLAG 'M' when the field spans more than one county. Set on 2,811 rows. e.g. M
7 discovery_date date The discovery date of the first well in the field, parsed from discovery_date_text. Null on the 670 rows published as 'N/A' and where only a bare year was written; eight rows carry a two-digit year the mainframe wrote out in full and parse to the year 28. e.g. 1982-09-01
8 discovery_date_text text DISCOVERY_DATE_TEXT The discovery date exactly as published -- '9-01-1982', '1944' or 'N/A'. Kept because the parse cannot represent all three. e.g. 9-01-1982
9 discovery_year smallint The year from discovery_date_text in either of its forms, so a field with only a bare year is still findable by decade. e.g. 1982
10 depth_ft integer measured in ft DEPTH_FT The depth the discovery well was perforated at, in feet: 1 to 24,398 across the file. A number here; the oil twin publishes the same item as unpadded text. e.g. 9446
11 total_wells integer TOTAL_WELLS Wells in the field at the end of the report year. e.g. 548
12 producing_wells integer PRODUCING_WELLS Wells in the field that produced gas-well gas during the report year. e.g. 463
13 cycling_flag text CYCLING_FLAG 'C' for a gas cycling reservoir reporting gross gas produced. Empty in every row of the current file. The manual lists this AFTER the gas volume and the file writes it BEFORE -- verified on all twelve parts -- so the name follows the manual's order and the position follows the data.
14 gas_production bigint measured in MCF GAS_PRODUCTION Gas produced during the report year, in MCF, totalled off the monthly P-2s. This is the twelfth }-delimited token, not the eleventh the manual names. e.g. 3826668
15 condensate_production bigint measured in bbl CONDENSATE_PRODUCTION Condensate produced during the report year, in barrels, off the P-2s. e.g. 72908
16 full_well_stream_flag text FULL_WELL_STREAM_FLAG 'F' when one or more wells in the reservoir produce full well stream to a gas plant. Empty in every row of the current file, and on the same manual-versus-file order question as cycling_flag.
17 cumulative_gas bigint measured in MCF CUMULATIVE_GAS Gas produced from 1 January 1970 to 31 December of the report year, in MCF. Not since discovery -- 1970 is the epoch, and it is a different one from the oil twin's cumulative, which does run from discovery. e.g. 397935576
18 remark1 text REMARK1 Free-form remark line 1, written by the Commission -- consolidation orders, docket references, field-transfer notes. 4,500 of the 42,138 rows use this line.
19 remark2 text REMARK2 Free-form remark line 2, written by the Commission -- consolidation orders, docket references, field-transfer notes. 4,093 of the 42,138 rows use this line.
20 remark3 text REMARK3 Free-form remark line 3, written by the Commission -- consolidation orders, docket references, field-transfer notes. 651 of the 42,138 rows use this line.
21 remark4 text REMARK4 Free-form remark line 4, written by the Commission -- consolidation orders, docket references, field-transfer notes. 142 of the 42,138 rows use this line.
22 remark5 text REMARK5 Free-form remark line 5, written by the Commission -- consolidation orders, docket references, field-transfer notes. 39 of the 42,138 rows use this line.
23 remark6 text REMARK6 Free-form remark line 6, written by the Commission -- consolidation orders, docket references, field-transfer notes. 24 of the 42,138 rows use this line.
24 remark7 text REMARK7 Free-form remark line 7, written by the Commission -- consolidation orders, docket references, field-transfer notes. 12 of the 42,138 rows use this line.
25 remark8 text REMARK8 Free-form remark line 8, written by the Commission -- consolidation orders, docket references, field-transfer notes. 8 of the 42,138 rows use this line.
26 remark9 text REMARK9 Free-form remark line 9, written by the Commission -- consolidation orders, docket references, field-transfer notes. 3 of the 42,138 rows use this line.
27 remark10 text REMARK10 Free-form remark line 10, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
28 remark11 text REMARK11 Free-form remark line 11, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
29 remark12 text REMARK12 Free-form remark line 12, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
30 remark13 text REMARK13 Free-form remark line 13, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
31 remark14 text REMARK14 Free-form remark line 14, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
32 remark15 text REMARK15 Free-form remark line 15, written by the Commission -- consolidation orders, docket references, field-transfer notes. 0 of the 42,138 rows use this line. Empty throughout the current file.
33 source_file text Which of the twelve district parts the row was read from, gsf3841 to gsf384d. Not an RRC field; there is no gsf3847. e.g. gsf3841
34 row_seq key integer The row's 1-based line number inside its part. Not an RRC field -- it is part of the key, because twenty districts carry two different fields under one name and (report_year, district, field_name) is therefore not unique.
35 ingested_at timestamptz When the upstream pipeline last wrote this row. Not an RRC field — it is EZRRC's provenance stamp, and it is what the freshness badge is measured against.

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 (printed designation) 14 values

Read by district

The district as the Railroad Commission prints it: 01-06, 6E, 7B, 7C, 08, 8A, 09 and 10, plus 20 for statewide. This is what appears on permits, completions, ST-1 filings and inspection reports. It is not interchangeable with the internal district number. A column holding '11' means District 8A under the internal numbering and nothing at all under this one.

RRC district (printed designation) — 14 codes and their meanings
CodeMeans
01 District 01 — San Antonio RRC District 01, administered from the San Antonio district office.
02 District 02 — San Antonio RRC District 02, administered from the San Antonio district office.
03 District 03 — Houston RRC District 03, administered from the Houston district office.
04 District 04 — Corpus Christi RRC District 04, administered from the Corpus Christi district office.
05 District 05 — Kilgore RRC District 05, administered from the Kilgore district office.
06 District 06 — Kilgore RRC District 06, administered from the Kilgore district office.
6E District 6E — Kilgore RRC District 6E, administered from the Kilgore district office.
7B District 7B — Abilene RRC District 7B, administered from the Abilene district office.
7C District 7C — San Angelo RRC District 7C, administered from the San Angelo district office.
08 District 08 — Midland RRC District 08, administered from the Midland district office.
8A District 8A — Midland RRC District 8A, administered from the Midland district office.
09 District 09 — Wichita Falls RRC District 09, administered from the Wichita Falls district office.
10 District 10 — Pampa RRC District 10, administered from the Pampa district office.
20 District 20 — State Wide RRC District 20, administered from the State Wide district office.

Source: Generated from texas.pdq_gp_district.district_name

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 Annual Report Field Table joins to PDQ Field Directory on District = District name and Field name = Field name — rows can match many rows in both directions.

is the field

The annual gas report has no field number, only a name, so this is the route to one. Matched on the printed district and the exact field name, 42,125 of the 42,138 annual rows find a directory entry — the thirteen that do not are the twelve 'DISTRICT TOTAL' rows and the one ' TEXAS TOTALS' row RRC writes into the field-name column. A name is not a key: a handful of districts carry two directory fields under one name, so 42,105 distinct district-and-name pairs produce 42,188 matched rows. Check the field number you get back before you build on it.

gas-annual-report-field-table.district = pdq-field-directory.district_name AND gas-annual-report-field-table.field_name = pdq-field-directory.field_name

Gas Annual Report Field Table joins to Oil & Gas Field Name & Numbers on District and Field name — rows can match many rows in both directions.

is the field

The annual gas report has no field number, only a name, so this is one of the two routes to one. Matched on the printed district and the exact field name -- both files write RRC's own capitalisation and RRC's own printed district, so neither side needs folding or translating -- 42,125 of the 42,138 annual rows find a published field. The thirteen that do not are the twelve 'DISTRICT TOTAL' rows and the one ' TEXAS TOTALS' row RRC writes into the field-name column. A name is not a key. 95 field names in the directory belong to more than one number, so 42,125 matched rows come back as 42,188, and 63 of the annual rows match more than one field. Check the field number you get before you build on it. The equivalent join to the PDQ field directory returns the same 42,125 for the same reason -- the two directories carry identical names. Take this one when the county code, the multi-county flag or the OIL / GAS / O & G classification is what is wanted.

gas-annual-report-field-table.district = oil-gas-field-names-numbers.district AND gas-annual-report-field-table.field_name = oil-gas-field-names-numbers.field_name

Gas Annual Report Field Table joins to Statewide Field Data on District = District name and Field name = Field name — many rows here share a single row there.

is the field record for

From a field's annual gas production to its whole regulatory record. 4,999 of 5,000 sampled annual rows find a field, with no folding or padding on either side: both write the district as RRC prints it and the field name in RRC's own capitalisation. The symmetry is close to exact -- 42,138 annual rows against the 42,133 fields the tape carries on the gas schedule -- but a name is still not a key: 115 fields share a (district, name) pair with another field, so those come back twice. The field NUMBER would settle it and the annual file does not carry one.

gas-annual-report-field-table.district = statewide-field-data.district_name AND gas-annual-report-field-table.field_name = statewide-field-data.field_name

Gas Annual Report Field Table joins to Oil & Gas Field Rules on District = District code and Field name = Field name — rows can match many rows in both directions.

is governed by the rules for

From a field's annual production to the spacing and density rules it is drilled under, on the printed district and the field name. The same 42,125 of 42,138 rows resolve as for the field directory, and the same thirteen subtotal rows do not. Both sides write the district as RRC prints it, so no translation is needed, and both write the field name in RRC's own capitalisation, so no folding is either. The caveat is the same: names are not keys, and 42,193 rows come back for 42,125 matched.

gas-annual-report-field-table.district = oil-gas-field-rules.district_code AND gas-annual-report-field-table.field_name = oil-gas-field-rules.field_name

Where this comes from

Published by
Texas Railroad Commission — the original page
Original format
Delimited Separated text, usually with an unusual delimiter such as a brace.
RRC publishes
Updated once a month (Monthly. Available by the 27th.)
RRC download link
GoAnywhere MFT
Record layout manual
Our table
texas.gas_annual_field

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.