Natural Gas Policy Act
Queryable Fixed-width
Every NGPA category determination the Commission has made, one row per docket.
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.
What this is
OGW003A6, the NGPA master file. One row per docket the Commission opened on an application under the Natural Gas Policy Act of 1978 — the federal framework the Texas high-cost gas incentive derives from. 233,678 dockets, reaching back to January 1978.
Each row carries who applied (operator number, mailing address and ZIP), what it applied over (the printed district plus the oil lease number or gas well ID, and a well number where the application names one), a status byte for each of the twelve NGPA categories the docket could be filed under — 102(b), 102(c), 103, 107(d), 107, 107(e), 107(t), 108 and their tax-certification twins — and the procedural trail as dates: application received, review letter sent, notice of hearing sent, hearing held, order prepared, sent to FERC, and put on the Secretary of State's agenda. Six more dates track the Central Records side of a 107 tax certification: approval, withdrawal, spud, completion, received and first production. Two 60-character remark lines carry whatever the analyst wrote.
RRC publishes it as fixed ASCII already converted off the mainframe. Upstream decodes the copybook positions, resolves the district subscript to the printed designation, turns the all-zero and high-value date sentinels into nulls and drops the RRDS control record and the erased slots.
What you can do with it
Trace a high-cost gas certification back to the determination behind it: every one of the 90,732 rows in the high-cost gas file names a docket number that is a docket here.
Count how long the Commission took between receiving an application and sending it to FERC, by category, by district or by year; find an operator's whole NGPA history from one P-5 number; and see which applications were withdrawn, denied or left incomplete.
Gotchas
This is frozen history that RRC still republishes monthly. The determinations run from 1978 into the 1990s; the file is reissued every month, but the rows in it do not change.
The district on the tape is a SUBSCRIPT, not the designation. Subscript 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. Both are here: `district` is the printed designation and is what to filter and join on; `district_subscript` is kept as published.
`lease_id` is an oil lease number when `well_type` is OIL and a gas well ID when it is GAS, and NGPA writes both six digits wide. PDQ writes gas IDs six wide too, so the gas side joins straight across; PDQ writes oil lease numbers FIVE wide, so an oil docket needs lpad(ltrim(lease_id,'0'),5,'0') before it will match anything. Padded that way, 74,005 of the 74,050 oil dockets whose lease fits in five digits resolve to the PDQ regulatory lease directory; 22 oil dockets carry six significant digits and match nothing.
Half the file has no received date. `received_date` is present on 128,813 of 233,678 dockets while `sent_date` is on 219,191 and `hearing_date` on 209,638, so a count of applications by received year is a count of the half that recorded one. Five dockets carry a received date in the future (2070 and similar) — mainframe typing, not a filing.
`roll` and `frame` are zero in all 233,678 rows; the manual says they are "presently not used" and the file agrees. `og_ad_docket` holds the Oil & Gas Legal Department's Area Designation docket (05-0235294 and the like) on 36,203 rows and a bare '*' on four; it is only present on the records longer than 346 bytes, and `line_length` says which those are.
`list_key` points into the interested-party file ROGFPL, which RRC publishes separately and this mirror does not carry. The number is real; there is nothing here to resolve it against.
The category bytes use one code list: 0 not applied for, X applied for, D denied, Z denied and withdrawn, A awaiting withdrawal, W withdrawn. Only 0, X, D and W appear in the current file.
Sentinel dates are everywhere: 0000-00-00, 00000000 and 1900-01-01 all mean "not recorded". The upstream loader turns the unparseable ones into NULL, but a 1900 date that parsed cleanly is still a placeholder, not a fact.
Record layout
61 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
ngpa_docket
61 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
docket_no
key
join
|
integer | 1-6 | FPM-DOC |
The docket number RRC assigned to the NGPA application, and the key of this file. The high-cost gas certification file carries the same number as docket_number; all 90,732 of its rows name a docket here. e.g. 157880 | — |
| 2 |
list_key
|
integer | 7-12 | FPM-LIST-KEY |
The relative record key of this docket's entry in the interested-party file ROGFPL, which RRC publishes as a separate dataset and this mirror does not carry. Non-zero on 125,998 dockets. | — |
| 3 |
well_type
|
text | 13-15 | FPM-TYP |
GAS or OIL, spelled out, though the manual describes it as a single G or O. It decides what lease_id means: an oil lease number on an OIL docket, a gas well ID on a GAS one. e.g. GAS | — |
| 4 |
district_subscript
|
text | 16-17 | FPM-DST |
The district exactly as the tape writes it, which is a SUBSCRIPT and not the designation: 07 is 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. Kept so a row can be checked against the original; filter and join on district instead. e.g. 05 | — |
| 5 |
lease_id
join
|
text | 18-23 | FPM-LSE-ID |
The oil lease number or gas well ID the application covers, six digits and zero-padded. PDQ writes gas IDs six digits wide too, so a gas docket joins straight across; it writes oil lease numbers FIVE wide, so an oil docket must be re-padded before it matches. e.g. 202476 | — |
| 6 |
well_no
|
text | 24-29 | FPM-WELL |
The well number, where the application named one. Present on 83,820 of 233,678 dockets. | — |
| 7 |
operator_no
join
|
text | 30-35 | FPM-OPR |
The applicant's RRC-assigned operator number. 233,649 of the 233,670 that carry one resolve to the P-5 organization directory. e.g. 251691 | — |
| 8 |
address
|
text | 36-66 | FPM-ADDR |
The operator's mailing address as filed, one line of up to 31 characters. e.g. 120 AUSTIN HWY STE 105 | — |
| 9 |
zip
|
text | 67-71 | FPM-ZIP |
The operator's ZIP code. Zeros are stored as null. e.g. 78209 | — |
| 10 |
cat_102b
|
text | 72 | FPM-102B |
Status of the docket's NGPA section 102(b) category: 0 not applied for, X applied for, D denied, Z denied and withdrawn, A awaiting withdrawal, W withdrawn. | — |
| 11 |
cat_102c
|
text | 73 | FPM-102C |
Status of the section 102(c) category, on the same code list as cat_102b. | — |
| 12 |
cat_103
|
text | 74 | FPM-103 |
Status of the section 103 category, on the same code list as cat_102b. | — |
| 13 |
cat_107d
|
text | 75 | FPM-107D |
Status of the section 107(d) category, on the same code list as cat_102b. | — |
| 14 |
cert_107d
|
text | 76 | FPM-C107D |
Status of the 107(d) TAX CERTIFICATION, on the same code list as cat_102b. | — |
| 15 |
cat_107
|
text | 77 | FPM-107 |
Status of the section 107 category -- the high-cost gas one -- on the same code list as cat_102b. 385 dockets applied for it and 172 withdrew. e.g. 0 | — |
| 16 |
cat_107e
|
text | 78 | FPM-107E |
Status of the section 107(e) category, on the same code list as cat_102b. | — |
| 17 |
cat_107t
|
text | 79 | FPM-107T |
Status of the section 107(t) category, on the same code list as cat_102b. | — |
| 18 |
cert_107
|
text | 80 | FPM-C107 |
Status of the 107 tax certification, on the same code list as cat_102b. | — |
| 19 |
cert_107e
|
text | 81 | FPM-C107E |
Status of the 107(e) tax certification, on the same code list as cat_102b. | — |
| 20 |
cert_107t
|
text | 82 | FPM-C107T |
Status of the 107(t) tax certification, on the same code list as cat_102b. | — |
| 21 |
cat_108
|
text | 83 | FPM-108 |
Status of the section 108 category, on the same code list as cat_102b. Zero in every row of the current file. | — |
| 22 |
latest_post_admin_date
|
date | 84-91 | FPM-LATEST-POST-ADMIN-DATE |
Date of administrative approval for the most recent post special order. Present on 1,625 dockets. | — |
| 23 |
order_status
|
text | 92 | FPM-ORD-STAT |
'0' while the order is on conference hold, 'R' once the hold is removed. | — |
| 24 |
no_response_20_day
|
text | 93 | FPM-20-STAT |
'X' once more than 20 days have passed since the applicant last responded, '0' while fewer have. X on 4,922 dockets. | — |
| 25 |
action
|
text | 94 | FPM-ACTION |
Final action: '0' sent to FERC, 'R' held for further action. | — |
| 26 |
contested
|
text | 95 | FPM-CONTESTED |
'C' on a contested application, '0' otherwise. Seven dockets are contested. | — |
| 27 |
complete
|
text | 96 | FPM-COMPLETE |
How far the application got: 0 received, I incomplete, C complete, X withdrawn, A awaiting withdrawal. 208,601 are complete and 11,819 withdrawn. e.g. C | — |
| 28 |
roll
|
smallint | 97-99 | FPM-ROLL |
Microfilm roll. The manual says the field is "presently not used" and the file agrees: zero in all 233,678 rows. | — |
| 29 |
frame
|
smallint | 100-103 | FPM-FRAME |
Microfilm frame. "Presently not used", and zero in all 233,678 rows, like roll. | — |
| 30 |
admin_approval
|
text | 104 | FPM-ADMIN |
'A' where the determination was approved administratively (201,169 dockets) and '0' where it was not (19,067). 1,262 rows carry 'D', which the manual does not list. | — |
| 31 |
sp_order_108
|
text | 105 | FPM-SP-ORD |
'S' when a section 108 special order was requested. | — |
| 32 |
sp_order_103
|
text | 106 | FPM-103-SP-ORD |
'S' when a section 103 special order was requested. | — |
| 33 |
type_107f
|
text | 107 | FPM-107F-TYPE |
FERC section type: '1' tight formation gas (13,033 dockets), '2' Devonian shale (16), '0' neither. The file also carries '3' and '4', on twelve dockets between them, which the manual does not describe. e.g. 1 | — |
| 34 |
cert_107f
|
text | 108 | FPM-C107F |
Tax-certification status for the FERC section type, on cat_102b's code list. | — |
| 35 |
sp_order_108c
|
text | 109 | FPM-108C-SP-ORDER |
Section 108 conservation special order: 0 not applied for, X applied for, P applied for after the application was complete. | — |
| 36 |
sp_order_108e
|
text | 110 | FPM-108E-SP-ORDER |
Section 108 enhanced-recovery special order, on sp_order_108c's code list. | — |
| 37 |
sp_order_108s
|
text | 111 | FPM-108S-SP-ORDER |
Section 108 seasonal special order, on sp_order_108c's code list. | — |
| 38 |
post_108c_status
|
text | 112 | FPM-POST-108C-STATUS |
Status of the post-108 conservation order: 0 not applied for, I incomplete, R approved at hearing, C approved administratively, S on the Secretary of State agenda, F order letter written, T FERC letter written, X withdrawn, A awaiting withdrawal, D denied, Z denied and withdrawn. | — |
| 39 |
post_108e_status
|
text | 113 | FPM-POST-108E-STATUS |
Status of the post-108 enhanced-recovery order, on post_108c_status's code list. | — |
| 40 |
post_108s_status
|
text | 114 | FPM-POST-108S-STATUS |
Status of the post-108 seasonal order, on post_108c_status's code list. | — |
| 41 |
latest_post_order_date
|
date | 115-122 | FPM-LATEST-POST-ORDER-DATE |
Date the most recent post order letter was sent to the applicant. Present on 1,665 dockets. | — |
| 42 |
hearing_sent_date
|
date | 123-130 | FPM-DTE-HEAR-SENT |
Date the notice of hearing, or the administrative approval letter, was sent to the applicant. | — |
| 43 |
received_date
|
date | 131-138 | FPM-DTE-RCVD |
Date RRC received the NGPA application. Present on 128,813 of 233,678 dockets, so it is not a reliable spine for counting filings by year, and five dockets carry a date in the future. e.g. 1978-12-01 | — |
| 44 |
sent_date
|
date | 139-146 | FPM-DTE-SENT |
Date the last review letter was sent to the applicant. Present on 219,191 dockets. | — |
| 45 |
hearing_date
|
date | 147-154 | FPM-DTE-HEAR |
Date of the formal hearing, or of administrative approval where there was no hearing. Present on 209,638 dockets. e.g. 2013-05-21 | — |
| 46 |
order_date
|
date | 155-162 | FPM-DTE-ORDER |
Date the orders were prepared. Present on 121,937 dockets. | — |
| 47 |
ferc_date
|
date | 163-170 | FPM-DTE-FERC |
Date the application was sent to the Federal Energy Regulatory Commission. Present on 120,106 dockets; the file's high-value sentinel 19999999 sits here on 271 records and is stored as null. | — |
| 48 |
con_set_date
|
date | 171-178 | FPM-DTE-CON-SET |
Date the application appeared on the Secretary of State's agenda. Present on 120,457 dockets. | — |
| 49 |
remark1
|
text | 179-238 | FPM-RMK1 |
General remarks, line 1. Up to 60 characters, free-form. e.g. APPLICATION WITHDRAWN ON 12-21-78 BY OPERATOR | — |
| 50 |
remark2
|
text | 239-298 | FPM-RMK2 |
General remarks, line 2. Only 7,004 dockets use a second line. | — |
| 51 |
cr_app_date
|
date | 299-306 | FPM-CR-APP-DATE |
Central Records: the date the 107, 107(e) or 107(t) tax certification was approved. | — |
| 52 |
cr_withdrawn_date
|
date | 307-314 | FPM-CR-WTH-DATE |
Central Records: the date that tax certification was withdrawn. | — |
| 53 |
cr_spud_date
|
date | 315-322 | FPM-CR-SPUD-DATE |
Central Records: the spud date of the well the tax certification covers. | — |
| 54 |
cr_completion_date
|
date | 323-330 | FPM-CR-COMP-DATE |
Central Records: the completion date of that well. | — |
| 55 |
cr_received_date
|
date | 331-338 | FPM-CR-REC-DATE |
Central Records: the date the tax certification application was received. | — |
| 56 |
cr_first_prod_date
|
date | 339-346 | FPM-CR-FIRSTP-DATE |
First production for the high-cost gas incentive: the earlier of the month of the deliverability test and the first production month reporting a disposition other than lease or field fuel use, or vented and flared. Present on 85,947 dockets. e.g. 2004-05-01 | — |
| 57 |
og_ad_docket
|
text | 347-356 | FPM-OG-AD-DOCKET |
The Area Designation docket the Oil & Gas Legal Department docket is associated with, e.g. 05-0235294. Present on 36,203 records and a bare '*' on four; it only exists on records longer than 346 bytes. e.g. 01-0253019 | — |
| 58 |
og_ad_docket_flag
|
text | 357 | — | A single byte after the Area Designation docket, Y on 818 records and N on 35,386. The manual does not describe it, and it is carried rather than dropped. e.g. N | — |
| 59 |
district
join
|
text | — | — | The district as RRC prints it (01-06, 6E, 7B, 7C, 08, 8A, 09, 10), decoded from district_subscript by the loader. Null on the two dockets whose subscript is 00. e.g. 05 | RRC district (printed designation) |
| 60 |
line_length
|
smallint | — | — | How many bytes the source line held: 346 on 197,212 records, 356 on 229, 357 on 15,862 and 400 on 20,375. Not an RRC field -- the loader records it because the optional Area Designation tail only exists past 346, and this says which rows could have carried one. e.g. 346 | — |
| 61 |
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.
| Code | Means |
|---|---|
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.
Natural Gas Policy Act joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
was applied for by
The operator that filed the NGPA application, resolved to the P-5 organization directory. 233,649 of the 233,670 dockets carrying an operator number resolve — the register still holds organizations that stopped filing in the 1980s. 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.
natural-gas-policy-act.operator_no = p5-organization-ascii.id
Natural Gas Policy Act joins to PDQ Regulatory Lease Directory on District = District name and Lease ID = Lease number — many rows here share a single row there.
covers the gas well
From a GAS docket to the lease directory, on the printed district and the six-digit gas well ID. 148,806 of the 154,493 gas dockets that name a lease resolve, which is 96%. Restrict the PDQ side to oil_gas_code = 'G' if you want to be explicit, though the widths already do it: PDQ writes gas IDs six characters wide and oil lease numbers five, and 0 of the 154,493 gas dockets collide with an oil lease. An OIL docket needs its lease re-padded to five digits first and is not this join — see the dataset's gotchas. The join goes through district_name, not district_no: NGPA publishes the printed designation once the subscript is decoded, and PDQ's district_no is the internal number.
natural-gas-policy-act.district = pdq-regulatory-lease-directory.district_name AND natural-gas-policy-act.lease_id = pdq-regulatory-lease-directory.lease_no
Natural Gas Policy Act joins to High Cost Gas on Docket number — one row here matches many rows there.
was determined in NGPA docket
The NGPA determination behind a high-cost gas certification, and the cleanest join in this file: all 90,732 certifications name a docket that exists here, and they name 90,732 distinct dockets, so it is one-to-one across the current pair of files. Unlike the oil-and-gas-docket join above, this one needs no regexp: both files write the bare six-digit number. It is the route from a certified lease to who applied, when the application was received, whether it was contested and when it went to FERC. 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.
high-cost-gas.docket_number = natural-gas-policy-act.docket_no
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- Fixed-width Columns are byte ranges with no separators, described only in a scanned record layout.
- RRC publishes
- Updated once a month (Monthly. Available by the 27th.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.ngpa_docket
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.