PDQ Field Directory
Queryable CSV
The field number to field name lookup, with class, discovery date and rules flags.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Production Data Query Dump, 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
One of the sixteen delimited tables inside the monthly Production Data Query dump. RRC publishes the dump as a single archive; EZRRC publishes each table inside it separately so you can take the one you need instead of a 3.6 GB zip.
65,000 fields: number, name, district, class, wildcat flag, hydrogen sulphide flag, salt dome flag, offshore code, discovery dates and the derived rule type — separately for the oil and gas schedules, because the same field can be governed differently on each.
Nothing else in the production data spells a field name out.
What you can do with it
Turn eight-digit field numbers into names, find every field discovered in a given year, and identify sour or offshore fields.
Gotchas
Almost every attribute exists twice, prefixed o_ for the oil schedule and g_ for the gas schedule. They frequently differ.
A field number is not unique across districts.
Record layout
33 columns.
pdq_og_field_dw
33 columns
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
field_no
key
join
|
text | — | The eight-digit RRC field number. The field's name is not in most files; join to the field directory to get it. | — |
| 2 |
field_name
|
text | — | Field name. | — |
| 3 |
district_no
join
|
text | — | RRC's INTERNAL district number, 01 to 14 plus 20 for statewide. This is not the district name the industry uses: 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. Join to the district directory rather than reading it as a label. | RRC district (internal number) |
| 4 |
district_name
|
text | — | RRC district as the industry writes it, e.g. 7B, 8A, 6E. | — |
| 5 |
field_class
|
text | — | Field class | — |
| 6 |
field_h2s_flag
|
text | — | Field H2S flag | — |
| 7 |
field_manual_rev_flag
|
text | — | Field manual rev flag | — |
| 8 |
wildcat_flag
|
text | — | Wildcat flag | — |
| 9 |
o_derived_rule_type_code
|
text | — | O derived rule type code | — |
| 10 |
g_derived_rule_type_code
|
text | — | G derived rule type code | — |
| 11 |
o_rescind_dt
|
date | — | O rescind date | — |
| 12 |
g_rescind_dt
|
text | — | G rescind date | — |
| 13 |
o_salt_dome_flag
|
text | — | O salt dome flag | — |
| 14 |
g_salt_dome_flag
|
text | — | G salt dome flag | — |
| 15 |
o_offshore_code
|
text | — | O offshore code | — |
| 16 |
g_offshore_code
|
text | — | G offshore code | — |
| 17 |
o_dont_permit
|
text | — | O dont permit | — |
| 18 |
g_dont_permit
|
text | — | G dont permit | — |
| 19 |
o_noa_man_rev_rule
|
text | — | O noa man rev rule | — |
| 20 |
g_noa_man_rev_rule
|
text | — | G noa man rev rule | — |
| 21 |
o_county_no
|
text | — | O county number | — |
| 22 |
g_county_no
|
text | — | G county number | — |
| 23 |
o_discovery_dt
|
date | — | O discovery date | — |
| 24 |
g_discovery_dt
|
date | — | G discovery date | — |
| 25 |
o_sched_remarks
|
text | — | O sched remarks | — |
| 26 |
g_sched_remarks
|
text | — | G sched remarks | — |
| 27 |
o_comments
|
text | — | O comments | — |
| 28 |
g_comments
|
text | — | G comments | — |
| 29 |
create_by
|
text | — | User or process that created the row in RRC's system. | — |
| 30 |
create_dt
|
date | — | When the row was created in RRC's system. | — |
| 31 |
modify_by
|
text | — | User or process that last changed the row in RRC's system. | — |
| 32 |
modify_dt
|
date | — | When the row was last changed in RRC's system. | — |
| 33 |
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 (internal number) 14 values
Read by district_no
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.
| Code | Means |
|---|---|
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.
PDQ Field Directory joins to Oil & Gas Field Rules on Field number — one row here matches one row there.
is the field
The field rules to the production system's field directory, on the eight-digit field number, zero-padded identically on both sides. 65,826 of the 65,836 fields with rules are in the directory, and all 65,826 directory fields have a rules row — the ten that do not match are fields RRC has designated since the directory was last cut. From there the field's monthly production is one more join: 41,144 of the 65,836 fields have a row in the PDQ field cycle table.
oil-gas-field-rules.field_number = pdq-field-directory.field_no
PDQ Field Directory joins to Statewide Field Data on District number and Field number — one row here matches one row there.
is the same field as
The FL tape's field master and PDQ's field directory are the same 65,826 fields, district for district: every fl_field row finds exactly one PDQ row and every PDQ row finds exactly one fl_field row. Both write the district as the internal number, so that half needs no translation. Worth having in both directions. PDQ carries the field name, the wildcat flag and the derived rule type; the FL tape carries the rules themselves, the allocation formula, the allowables and the monthly production. 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.
statewide-field-data.district_no = pdq-field-directory.district_no AND statewide-field-data.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to PDQ Field Production by Cycle on Field number — one row here matches many rows there.
totals the field
Field production is published against an eight-digit number and nothing else. The field directory is the only place the name, class, discovery date and wildcat flag live. Exact on all 5,000 sampled rows. A field that crosses a district boundary appears under more than one district, so sum across districts for a field total.
pdq-field-cycle.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to Oil & Gas Field Name & Numbers on Field number = Field number text — one row here matches one row there.
is the same field as
The published name list and the production system's own field directory are the same 65,826 fields exactly: every row here finds one PDQ row and every PDQ row finds one row here. Both write the number as eight zero-padded characters, so the comparison is made as printed with no cast. They agree completely on what they share, which is itself the finding: the field name is identical on all 65,826 rows and so is the printed district. What each adds is different. PDQ carries the wildcat flag, the H2S flag and the derived rule type, and a SEPARATE county number for the oil and the gas schedule; this file carries one county code, the multi-county flag and the OIL / GAS / O & G classification. On 65,815 of the 65,826 fields the county here matches at least one of PDQ's two (33,721 the oil one, 41,853 the gas one); the eleven that match neither are the statewide WILDCAT rows whose county code is 000.
oil-gas-field-names-numbers.field_no_text = pdq-field-directory.field_no
PDQ Field Directory joins to Oil Ledger on Field number — one row here matches one row there.
is the field
The ledger's field number resolved to the field directory, which is where the field's name and class live. Measured over the whole table rather than a sample, because 33,939 rows can afford it: all 33,939 field records match a directory entry. District is deliberately not in the join, and it costs nothing to leave out. Field numbers are unique on this tape -- 33,939 numbers in 33,939 rows, none carried in two districts -- and the directory names the same district on every one of them, so adding it would neither narrow the join nor drop a row. Leaving it out also spares the reader the 06E-to-6E translation every other PDQ join here needs. 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.
oil-ledger.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to Gas Ledger on Field number — one row here matches one row there.
is the field
The gas ledger's field number resolved to the field directory for its name and class. All 5,000 sampled gas field records match. 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.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to Certificate of Authorization P-4 (Oil and Gas) on Field number — one row here matches many rows there.
is in the field
The lease's CURRENT field, resolved to a field name and its district. Every one of the 548,099 leases carries a field number -- no nulls, no zeros -- and 547,747 of them find a directory row, over 61,768 distinct fields. The field a lease was in at the time of an OLDER filing is info_field_no on p4_filing, which reaches the same directory: 48,048 of its 48,150 distinct values are in it. 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.
p4-certificate-of-authorization.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to PDQ Lease Production by Cycle on Field number — one row here matches many rows there.
produced from the field
The eight-digit field number resolved to a field name, class, discovery date and rules flags.
pdq-lease-cycle.field_no = pdq-field-directory.field_no
PDQ Field Directory joins to Gas Annual Report Field Table on District name = District 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
PDQ Field Directory joins to UIC Database (ASCII) on Field number — one row here matches many rows there.
injects into the field
The permitted injection field, resolved to a field name.
uic-database-ascii.field_no = pdq-field-directory.field_no
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- CSV Comma-separated text.
- RRC publishes
- Updated once a month (Last Saturday each month, with the PDQ dump.)
- RRC download link
- GoAnywhere MFT
- Record layout manuals
- Our table
texas.pdq_og_field_dw
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.