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

The Commission's online Field Rules data, as four related tables: 65,836 fields, 76,121 per-schedule field records, 19,751 field-specific spacing rules and the 7 standard rules that apply where a field has none of its own.

`field_rules_field` is one row per field — the eight-digit field number, its name, whether it is oil, gas or both, its district, whether it is a wildcat and whether hydrogen sulfide has been reported in it. `field_rules_field_info` adds the per-schedule detail: discovery date and county, salt dome and offshore classification, which rule regime the field falls under, the proration analyst's remarks, and the free-text vertical and horizontal rule notes. `field_rules_rule` is where the rules themselves live: feet from the lease line, feet from the nearest well, acres per proration unit, tolerance acreage, the maximum diagonal and how it is measured, base or optional, and the date the rule took effect. `field_rules_std_rule` is the seven statewide, county-regular and McCulloch-county defaults, banded by depth.

Field rules are why two wells in the same county have different allowables, and why a location legal in one field is not in the next.

RRC ships this as an Oracle `exp` binary dump — orr_og_field_001_prod.dmp.gz, an export of the PROD_OG_OWNR schema, not a fixed-width tape and not SQL. EZRRC's upstream reads the dump format directly (column descriptors, length-prefixed rows, Oracle's base-100 NUMBERs and 7-byte DATEs) with no Oracle client anywhere, which is what makes it queryable here. The pristine .dmp.gz is still on offer below for anyone who would rather import it themselves.

What you can do with it

Check the spacing and density governing a field before you evaluate a location: minimum lease-line distance, minimum well-to-well distance and acres per unit, with the depth-banded statewide default to fall back on when the field has no special rules.

Find every field in a district that has special rules at all — 15,462 fields of 65,836 do — or every field flagged for hydrogen sulfide, or every field the Commission has closed to new permits.

Join to the PDQ field directory on the field number (65,826 of 65,836 resolve) and from there to monthly production, so a field's rules and its output read side by side.

Gotchas

The download and the query box carry the field table, `texas.field_rules_field`. The other three are documented on this page because RRC ships them in the same export, and they are joined to it on `field_id`, the Oracle surrogate — which equals int(field_number) in all 65,836 rows, so a field number is enough to reach any of them.

A field with no row in `field_rules_rule` is not unregulated: it is on the standard rules, and which standard set applies is the `derived_rule_type_code` on its field-info row. SW is statewide (47,956 rows), CR county regular (10,293, for Districts 7B and 09), MC McCulloch County (57) and SP special — 17,815 rows, the ones that do have their own rule.

Rules come in pairs. `rule_type_code` is B for the base rule and O for an optional one the operator may elect instead, and a field can carry several of each on each schedule, so 19,751 rules cover 15,462 fields.

`maximum_diagonal_length` is 99999 where no diagonal limit applies and 0 where none is set, not a measurement; read it with `diagonal_type_code`, which is CC corner-to-corner, WC well-to-corner, or null on 3,560 rules.

`effective_dt` is filled in on 8,104 of 19,751 rules, and two of those are in the future (2066). `modified_dt` is a load stamp, not an adoption date: every row of the field table carries 'Mainframe Extract' and the timestamp of the export.

The dump carries one column the manual does not list, `field_type` on the field-info table, values '49', 'ON' or null. It is kept as published because dropping a column RRC ships is worse than carrying one nobody has documented.

The county code on the field-info table is the discovery county of a field that may span several; there is one row per field per schedule, not one per county.

Record layout

48 columns.

field_rules_field 12 columns

This is the table you get when you download or query Oil & Gas Field Rules.

Record layout for field_rules_field — 12 columns
# Column Type RRC name Meaning Lookup
1 field_number key join text FIELD_NUMBER The eight-digit field number the Oil & Gas Division's field designation section assigns. The first five digits identify the field and ascend with the alphabetic field name; the last three are the reservoir number, which has no alphabetic relationship. Wildcat numbers follow neither rule. e.g. 00043300
2 field_name text FIELD_NAME The field name: an operator's word, the stratigraphic interval and usually the depth, e.g. JOHNSON FRIO 4700. The operator proposes three and the Commission chooses. e.g. A.B. ALLEN (MIOCENE 2100)
3 field_id join bigint FIELD_ID Oracle's surrogate key, and what the other three tables in this export are joined on. It equals the field number without its leading zeros in all 65,836 rows. e.g. 43300
4 field_class_code text FIELD_CLASS_CODE 'O' oil (23,696 fields), 'G' gas (31,894) or 'B' both (10,246). Not the two-value oil/gas schedule code the production files use. A 'B' field with a non-zero associated_field_id has a related field under a different number. e.g. G
5 modified_by text MODIFIED_BY The process that last wrote the row in RRC's Oracle database. 'Mainframe Extract' in all 65,836 rows of the current export. e.g. Mainframe Extract
6 field_h2s_flag text FIELD_H2S_FLAG Whether hydrogen sulfide has been reported in the field, from the operator's Form H-9 statewide rule 36 certificate: 'N' none (62,760 fields), 'Y' present (2,950), 'E' present but exempt from filing (126). e.g. N
7 field_manual_rev_flag text FIELD_MANUAL_REV_FLAG 'Y' when the field's rules are complex enough that permitting needs a person rather than the rule tables. Seven fields in the state. e.g. N
8 wildcat_flag text WILDCAT_FLAG 'Y' when there is no known zone of production for the field. 33 fields of 65,836, and their names and numbers follow none of the usual conventions. e.g. N
9 modified_dt timestamp MODIFIED_DT When RRC's Oracle row was last written. A load stamp rather than an adoption date: most rows carry the timestamp of the monthly export.
10 district_id integer DISTRICT_ID The district as Oracle numbers it, 1 to 14. Not the printed designation: 7 is 6E, 8 is 7B, 9 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. 12 (8B) is reserved and unused. e.g. 2
11 district_code join text DISTRICT_CODE The district as RRC prints it, decoded from district_id. This is the one to filter and join on. e.g. 02 RRC district (printed designation)
12 associated_field_id bigint ASSOCIATED_FIELD_ID For a gas field associated with an oil field of a DIFFERENT number, the oil field's id. Zero, meaning none, on all but 39 fields. e.g. 0

field_rules_field_info 16 columns

Documented here because RRC ships it in the same file. It is not in a download of this dataset.

Record layout for field_rules_field_info — 16 columns
# Column Type RRC name Meaning Lookup
1 oil_or_gas_code key text OIL_OR_GAS_CODE Which schedule this row describes: 'O' oil (33,981 rows) or 'G' gas (42,140). A field classed as both has two rows here, one each. e.g. O Oil or gas schedule
2 field_info_id bigint FIELD_INFO_ID Oracle's surrogate key for this row. Unique; nothing else references it. e.g. 18289
3 field_id key join bigint FIELD_ID The field this row belongs to, joining to field_rules_field.field_id -- which is the field number without its leading zeros. Every one of the 76,121 rows has a parent field. e.g. 32157525
4 salt_dome_flag text SALT_DOME_FLAG 'Y' where the Commission has classified the field as a salt dome on engineering and geologic evidence, which takes it outside the statewide spacing rule. 166 rows of 76,121. e.g. N
5 derived_rule_type_code text DERIVED_RULE_TYPE_CODE Which rule regime the field falls under: 'SW' statewide (47,956 rows), 'CR' county regular (10,293, in Districts 7B and 09), 'MC' McCulloch County (57), 'SP' special (17,815 -- the fields that have their own rule rows). The first three resolve in field_rules_std_rule; 'SP' deliberately does not. e.g. SP
6 rescind_dt date RESCIND_DT When the field's gas rules were rescinded and it reverted to statewide spacing. Set on 1,603 rows.
7 offshore_code text OFFSHORE_CODE Where the discovery well sits: 'L' land (74,340 rows), 'B' bays and estuaries (930), 'SO' state offshore (755), 'LB' land plus bays and estuaries (55), 'BO' bays and offshore (2). The manual also lists 'AL' and 'SF', which the current export does not use. e.g. L
8 dont_permit_flag text DONT_PERMIT_FLAG 'Y' when no well is to be permitted in this field, usually because it has been consolidated into another. 7,071 rows. e.g. N
9 schedule_remarks text SCHEDULE_REMARKS The proration analyst's remarks as printed on the schedule, up to 66 characters. Present on 29,577 rows. The manual describes this item as a Y/N print flag; the export carries the text itself. e.g. LINE, CORRELATIVE INTERVAL 9490-9610
10 comments text COMMENTS Free-form comments from a proration analyst, up to 66 characters. Present on 5,546 rows. e.g. SEE REMARKS
11 noa_manual_rev_rule text NOA_MANUAL_REV_RULE The rule text as written for the notice of application: the vertical and horizontal spacing rules in the Commission's own shorthand, e.g. 'VERTICAL FIELD RULES - 660/2640 320'. Free text up to 2,000 characters, and present on only 30 rows of the current export. e.g. VERTICAL FIELD RULES - 660/2640 320
12 discovery_dt date DISCOVERY_DT The discovery date of the first well in the field. Present on 74,615 rows and reaching back to 1866. e.g. 1977-05-01
13 county_code join text COUNTY_CODE The DISCOVERY county of the field, three digits. A field may span counties; there is one row here per field per schedule, not one per county, so this does not enumerate them. e.g. 225 Texas county code
14 modified_by text MODIFIED_BY The process that last wrote the row in RRC's Oracle database. 'dailyLoad' and 'dailyload' -- the same job in two capitalisations, on 42,838 and 32,608 rows. e.g. dailyLoad
15 modified_dt timestamp MODIFIED_DT When RRC's Oracle row was last written.
16 field_type text FIELD_TYPE Not in the published manual, and present in the dump: '49' on 4,385 rows, 'ON' on five, null on the rest. Carried as published, because dropping a column RRC ships is worse than carrying an undocumented one. e.g. 49

field_rules_rule 13 columns

Documented here because RRC ships it in the same file. It is not in a download of this dataset.

Record layout for field_rules_rule — 13 columns
# Column Type RRC name Meaning Lookup
1 oil_or_gas_code text OIL_OR_GAS_CODE Which schedule this rule governs: 'O' oil (8,407 rules) or 'G' gas (11,344). A field classed as both can carry rules on each. e.g. O Oil or gas schedule
2 field_id join bigint FIELD_ID The field this rule belongs to, joining to field_rules_field.field_id. 19,751 rules cover 15,462 fields; every other field is on the standard rules. e.g. 96545691
3 field_rule_id key bigint FIELD_RULE_ID Oracle's surrogate key for this rule. e.g. 371
4 minimum_lease_distance integer measured in ft MINIMUM_LEASE_DISTANCE How far from the nearest lease line a well must be, in feet. Statewide rule 37 says 467; a field rule adopted at hearing can say anything, and here that runs from 0 to 3,735. e.g. 330
5 modified_by text MODIFIED_BY The process that last wrote the row in RRC's Oracle database. 'dailyLoad' in all 19,751 rows. e.g. dailyLoad
6 rule_type_code text RULE_TYPE_CODE 'B' for the field's base rule (17,814 rows) or 'O' for an optional one an operator may elect instead (1,937). A field can carry several of each. e.g. O
7 diagonal_type_code text DIAGONAL_TYPE_CODE How the proration unit's diagonal is measured: 'CC' corner to corner (14,884 rules) or 'WC' well to corner (1,307). Null on 3,560 rules, which set no diagonal. e.g. CC
8 minimum_well_distance integer measured in ft MINIMUM_WELL_DISTANCE How far from the nearest well a well must be, in feet. Statewide rule 37 says 1,200; here the range is 0 to 9,999. e.g. 0
9 modified_dt timestamp MODIFIED_DT When RRC's Oracle row was last written.
10 maximum_diagonal_length numeric measured in ft MAXIMUM_DIAGONAL_LENGTH The longest diagonal a proration unit may have, in feet. 99999 means no limit and 0 means none is set -- neither is a measurement. e.g. 99999
11 tolerance_acres numeric measured in acres TOLERANCE_ACRES Acreage left over in a lease once every proration unit has been carved out of it, which the operator may ask to spread among the other wells or give to the last well drilled. 0 to 704 acres. e.g. 0.00
12 minimum_acres_per_unit numeric measured in acres MINIMUM_ACRES_PER_UNIT Acres dedicated to one well. Statewide rule 37 says 40; field rules here run from 0 to 1,280. e.g. 10.00
13 effective_dt date EFFECTIVE_DT The date the rule took effect. Present on 8,104 of 19,751 rules, and two of those are dated in the future. e.g. 2015-01-27

field_rules_std_rule 7 columns

Documented here because RRC ships it in the same file. It is not in a download of this dataset.

Record layout for field_rules_std_rule — 7 columns
# Column Type RRC name Meaning Lookup
1 std_field_rule_code join text STD_FIELD_RULE_CODE Which default regime the band belongs to: 'SW' statewide, 'CR' county regular (Districts 7B and 09), 'MC' McCulloch County. A field's field-info row names one of these in derived_rule_type_code. e.g. SW
2 std_field_rule_id key text STD_FIELD_RULE_ID The band within the regime: CR1 to CR4, MC1, MC2, SW1. Seven rows is the whole table. e.g. SW1
3 min_depth integer measured in ft MIN_DEPTH Top of the depth band this default applies to, in feet. e.g. 0
4 max_depth integer measured in ft MAX_DEPTH Bottom of the depth band, in feet. 99999 on the open-ended band of each regime. e.g. 99999
5 min_lease_distance integer measured in ft MIN_LEASE_DISTANCE Feet from the nearest lease line under this default. 467 for statewide rule 37; the shallow county-regular bands allow 150. e.g. 467
6 min_well_distance integer measured in ft MIN_WELL_DISTANCE Feet from the nearest well under this default. 1,200 for statewide rule 37. e.g. 1200
7 min_acres_per_unit numeric measured in acres MIN_ACRES_PER_UNIT Acres per well under this default. 40 for statewide rule 37, down to 2 on the shallowest county-regular band. e.g. 40.00

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.

Texas county code 277 values

Read by county_code

The three-digit county code RRC uses, which is also the county's FIPS code. `canonical_value` carries the full five-digit state plus county FIPS, so a county joins straight to Census geography. There are 254 Texas counties and 277 codes; the extras are offshore areas and administrative entries.

See all 277 codes

Source: Generated from texas.pdq_gp_county

RRC district (printed designation) 14 values

Read by district_code

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

Oil or gas schedule 2 values

Read by oil_or_gas_code, oil_or_gas_code

Which schedule a lease is carried on. This is not decoration: an oil lease number and a gas lease number can be the same digits and mean different leases, so a lease key is only unique with this code and the district in it.

Oil or gas schedule — 2 codes and their meanings
CodeMeans
O Oil Carried on the oil proration schedule; lease numbers are oil lease numbers.
G Gas Carried on the gas proration schedule; lease numbers are gas well IDs.

Source: PDQ Dump user manual; values confirmed as the complete distinct set in texas.pdq_og_lease_cycle.oil_gas_code

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.

Oil & Gas Field Rules joins to PDQ Field Directory 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

Oil & Gas Field Rules joins to Oil & Gas Field Name & Numbers on Field number = Field number text — one row here matches one row there.

is governed by the rules for

From a field's published name to the spacing and density rules it is drilled under, on the eight-digit field number, zero-padded identically on both sides so no cast is needed. All 65,826 of the fields in the published list have a rules row. The Oracle export carries 65,836, so ten fields have rules and are not in the name file -- fields RRC has designated since the directory was last cut. That is the same ten the PDQ directory is missing, and it is the number to expect: a rules row with no published name is new, not broken.

oil-gas-field-names-numbers.field_no_text = oil-gas-field-rules.field_number

Oil & Gas Field Rules joins to Statewide Field Data on Field number — one row here matches one row there.

is the same field as

The mainframe's field master and RRC's Oracle field-rules export, on the eight-digit field number. All 65,826 fields on the tape are in the export, which carries 65,836 -- ten fields the tape does not. The two describe the same fields from different systems and are worth reading together: the Oracle export has the derived rule type and the schedule remarks, the tape has the rule history, the allocation formulas and the allowables. 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.field_no = oil-gas-field-rules.field_number

Oil & Gas Field Rules joins to Field Gas Rules (Mainframe) on Field number — one row here matches many rows there.

is a mainframe rule for

Every one of the 13,951 gas rules on the tape names a field that the Oracle field-rules export also carries -- 13,951 of 13,951. The two disagree by design rather than by accident: this side keeps the superseded rules with their suspension dates and the analyst's own text, the Oracle side keeps what is in force. Read them together before assuming either is the whole story. 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-gas-rules.field_no = oil-gas-field-rules.field_number

Oil & Gas Field Rules joins to Field Oil Rules (Mainframe) on Field number — one row here matches many rows there.

is a mainframe rule for

All 8,565 oil rules on the tape name a field the Oracle field-rules export carries. As on the gas side, this file keeps the rules that have been replaced and the Oracle export keeps the current ones. 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-oil-rules.field_no = oil-gas-field-rules.field_number

Oil & Gas Field Rules joins to Gas Annual Report Field Table on District code = District 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.field_rules_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.