Certificate of Authorization P-4 (Oil and Gas)
Queryable EBCDIC
Who gathers, buys and nominates each Texas lease's oil and gas, and every P-4 behind it.
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
P4A002. The only dataset here that answers the question 'who takes this lease's production'. The P-4 is the form an operator files to name the gatherer that moves a lease's oil or gas, the purchaser that buys it, and the nominator that schedules it; nothing legally leaves a lease without one. Production files tell you how much came out of a lease. This tells you whose pipeline and whose cheque.
548,099 oil leases and gas wells — every one RRC has ever carried, on schedule or long since removed — with 3,766,596 P-4 filings under them, 12,128,746 gatherer / purchaser / nominator connections, 1,043,593 severance letters, 579,958 historical lease names, and the consolidation and subdivision pointers that link one lease number to the next.
Ten tables out of one 92-byte EBCDIC tape, in RRC's own hierarchy: p4_lease is the lease, p4_filing every P-4 ever filed for it (newest first), p4_gatherer the connections named on each filing, p4_remark and p4_lease_remark the clerks' notes, p4_lease_name the name history, p4_lease_pointer the consolidations and subdivisions, p4_lease_restriction the holds and 14(b)(2) blocks, and p4_severance with p4_severance_remark the severance letters and the text RRC printed on them.
The connection history is the part nothing else has. A lease's filings run back to 1976 and each one carries the companies named on it and the percentage split between them, so the tape records not just today's purchaser but every purchaser the lease has had and the day each was replaced.
What you can do with it
Ask who buys from a lease and who moves it — the current P-4 is the lease's newest filing (filing_ordinal = 1) and the p4_gatherer rows under it, with type_code G for the gatherer, H for the purchaser and I for the nominator. 437,323 of the 548,099 leases carry at least one connection on their current filing and 353,995 carry a purchaser on it; among the 237,603 still on the proration schedule, 185,642 do. Counted over every lease, not sampled.
Run it the other way and get a midstream company's whole book: all 12.1 million connections carry the counterparty's P-5 organization number, 7,400 of the 7,405 distinct numbers resolve to the operator directory, and Energy Transfer alone appears as purchaser on 92,562 of them.
Filter to a district, an operator or a field and pull the leases that are still on the proration schedule; find the ones that are off it and why, from remove_reason and remove_date; or work through the severance letters with no sign of a reconnect — 56,092 letters over 31,197 leases carry neither a reconnect issue date nor an actual one. Take actual_reconnect_date alone and the answer is 757,750 letters over 204,011 leases, which is thirteen times too many: 701,658 of them DID have a reconnect letter issued and only the actual date went unrecorded.
Gotchas
A P-4 names authorisation, not transactions. An authorised purchaser may take nothing, and the tape carries no volumes at all. Join to PDQ or the proration ledgers for what actually moved.
Two districts, two spellings, on every table. district_no is RRC's INTERNAL number, 01-14, which is what the tape stores and what every key and join uses: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. district on the lease row is the same district written the way RRC prints it. Reading district_no = '10' as District 10 moves 74,424 Permian leases to the Panhandle. District 8B (internal 12) has no leases on this tape at all.
Children carry the lease key and nothing else of their own. The tape is an IMS hierarchy unloaded in order, so a gatherer row belongs to the filing above it purely by position. The loader carries (oil_gas_code, district_no, lease_rrcid) down onto every table and the filing's sequence_key onto the filing's children, and gives each row an ordinal counted from 1 within its parent — filing_ordinal, gpn_ordinal, severance_ordinal. Those ordinals are EZRRC's, not RRC's; filing_ordinal = 1 is the newest filing, verified on all 2,000 leases sampled.
The date keys are nines-complement. sequence_key, effective_key and effect_key are 99999999 minus CCYYMMDD, so they sort newest first and 99999999 means no date at all — a dummy P-4, which 91,378 filings and 329,932 lease-name rows are. Each raw key is kept because it identifies the filing, and the decoded date sits beside it: filter on sequence_date, join on sequence_key.
percentage_key is not the split. actual_percent is, stored as 9(1)V9(4), so 98% is 0.9800. The manual says the key is 1 minus the actual percent; on 62,553 of the 12.1 million rows it is not — 17,229 carry 1.0000 in both and 1,198 carry a key GREATER than 1, which no percentage can be — so read actual_percent and leave the key to the sort order it exists for.
Twenty of the thirty segments are not here. The loader reads keys 01-10 and counts the rest: the gas and oil proration schedules and their cycles, the problem-letter records, the Yates and unit segments, lease exceptions, commingle pointers, the P-17 exception dates and the fee, check-register and severance-fee records. They are on the pristine tape, which is still offered below, and not in these ten tables.
Y/N flags also hold '0', and one column is always zero. pending_removal, hold_flag, commingle_flag, reissue_fee_flag and uic_letter_hold are stored as the character the tape holds rather than coerced, because '0' is a third value RRC writes and not a missing N. p5_filing_on_tape is 0 on all 3,766,596 filings.
The original file is EBCDIC and will look like noise in a text editor. The decoded rows EZRRC serves are the same records.
Record layout
137 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
p4_lease
18 columns
This is the table you get when you download or query Certificate of Authorization P-4 (Oil and Gas).
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | 3 | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. O | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | 4-5 | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | 6-11 | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 1 | — |
| 4 |
district
join
|
text | — | — | The same district written the way RRC prints it -- 01-06, 6E, 7B, 7C, 08, 8A, 09, 10 -- derived by the loader from district_no, which is what the tape actually holds. This is the readable one; district_no is the one to join on. No lease on the August 2026 tape is in District 8B. e.g. 01 | RRC district (printed designation) |
| 5 |
field_no
join
|
integer | 12-19 | P4-FIELD-NUMBER |
The eight-digit RRC field number of the lease's CURRENT field, as a whole number, so field 00046750 is 46750 here. Every one of the 548,099 leases carries one; 4,997 of 5,000 sampled resolve to the PDQ field directory once padded back to eight digits. The field at the time of an older filing is info_field_no on p4_filing. e.g. 467500 | — |
| 6 |
off_schedule
|
text | 20 | P4-ON-OFF-SCHEDULE-INDICATOR |
Whether the lease is on the proration schedule, written the awkward way round: N means it IS on the schedule and Y means it has been removed. 310,496 of the 548,099 leases are off it, which is what makes this tape a history rather than a register of live leases. e.g. N | — |
| 7 |
operator_no
join
|
integer | 21-26 | P4-OPERATOR-NUMBER |
The six-digit P-5 organization number of the lease's CURRENT operator. 4,971 of 5,000 sampled leases resolve to the operator directory. Not the gatherer or the purchaser -- those carry their own P-5 numbers on p4_gatherer. e.g. 416670 | — |
| 8 |
remove_reason
|
text | 27-28 | P4-REMOVE-FROM-SCHEDULE-REASON |
Why the lease left the proration schedule: 01 last well plugged and abandoned, 02 consolidated/subdivided/transferred, 03 consolidated, 04 subdivided, 05 last well transferred, 06 last well worked over, 07 last well reclassed, 08 last well removed under an exception to SWR 10, 09 lease built in error, 10 administrative. Null on 223,274 leases, but this is NOT the on-schedule column read backwards: 14,409 leases still on the schedule carry a reason from an earlier removal, and 80 leases that are off it carry none. Read off_schedule for the status. 200,241 leases left because the last well was plugged. The tape also carries 99 on 15,080 removed leases and 00 on 457 more, 455 of them still on the schedule; the manual describes neither. e.g. 01 | — |
| 9 |
remove_date
|
date | 29-36 | P4-REMOVE-FROM-SCHEDULE-DATE |
When the lease came off the schedule. If the removal was after the first day of the month the lease still appears on that month's schedule. | — |
| 10 |
stock_on_hand
|
text | 37 | P4-STOCK-ON-HAND-INDICATOR |
Whether a non-producing lease still has liquid stock to dispose of, which is what holds it on the schedule: N none (505,328 leases), Y stock on hand (9,355), S removed after the stock and any overproduction cleared (33,416). | — |
| 11 |
sched_sequence_key
join
|
integer | 38-45 | P4-SEQUENCE-DATE-KEY-FOR-SCHED |
The nines-complement key (99999999 minus CCYYMMDD) of the P-4 filing RRC uses to place this lease on the schedule, which matters when there is a gap between the lease's schedule start and the effective date of its first active P-4. Join it to p4_filing.sequence_key. 91,336 leases carry the 99999999 dummy, which is no date at all. e.g. 80229376 | — |
| 12 |
sched_sequence_date
|
date | 38-45 | P4-SEQUENCE-DATE-KEY-FOR-SCHED |
sched_sequence_key decoded to a real date. Null on 91,378 leases: the 91,336 whose key is the 99999999 dummy, and 42 more whose key is a number that is not a date once the complement is taken. e.g. 1977-06-23 | — |
| 13 |
pending_removal
|
text | 46 | P4-PENDING-LEASE-REMOVAL-FLAG |
Set to Y on the 14,472 non-producing leases waiting to come off the schedule because of stock on hand, overproduction or a severance. The tape writes the not-pending case as N on 292,588 leases and as '0' on 241,039 more; the loader stores the character it found rather than folding the two, because the manual describes only N. e.g. Y | — |
| 14 |
land_bore_cnt
|
integer | 47-49 | P4-LAND-BORE-CNT |
Count of the lease's wellbores that are on land, packed decimal on the tape. Null on the three leases that carry zoned zeros where the five packed counters should be -- the loader counts those as unreadable rather than reading them as no wellbores. e.g. 1 | — |
| 15 |
inland_bore_cnt
|
smallint | 50-51 | P4-INLAND-BORE-CNT |
Count of the lease's wellbores in inland waters. Packed decimal. | — |
| 16 |
bay_bore_cnt
|
smallint | 52-53 | P4-BAY-BORE-CNT |
Count of the lease's wellbores in a bay or estuary. Packed decimal. | — |
| 17 |
offshore_bore_cnt
|
smallint | 54-55 | P4-OFFSHORE-BORE-CNT |
Count of the lease's offshore wellbores. Packed decimal; 542 of the 548,099 leases carry one. | — |
| 18 |
lease_total_depth
|
integer measured in ft | 56-60 | P4-LEASE-TOTAL-DEPTH |
Total depth of the lease in feet, packed decimal. Null on the same three leases whose packed counters could not be read. e.g. 2812 | — |
p4_filing
26 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 8 | — |
| 4 |
filing_ordinal
|
integer | — | — | 1-based position of this filing among its siblings under the same lease, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. The tape unloads a lease's filings newest first, so 1 is the current P-4 -- confirmed against the raw sequence key on all 2,000 leases sampled. A lease carries 6.87 filings on average and one carries 68. e.g. 4 | — |
| 5 |
sequence_key
key
join
|
integer | 3-10 | P4-SEQUENCE-DATE-KEY |
The filing's own identifier: 99999999 minus the sequence date, so the newest filing sorts first. This is the column the gatherer and remark rows carry to say which filing they belong to, and it is part of the primary key because 91,378 filings are dummies carrying 99999999, which decodes to no date. e.g. 80129472 | — |
| 6 |
sequence_date
|
date | 3-10 | P4-SEQUENCE-DATE-KEY |
sequence_key decoded, normally the date RRC approved the filing. Null on the 91,389 filings whose key does not decode to a date. e.g. 1987-05-27 | — |
| 7 |
effective_key
|
integer | 11-18 | P4-EFFECTIVE-DATE-KEY |
99999999 minus the effective date, the tape's search key for it. Read effective_date instead unless you are matching the tape. e.g. 80129686 | — |
| 8 |
effective_date
|
date | 19-26 | P4-EFFECTIVE-DATE |
The date the change on this P-4 takes effect, which is not the date it was approved and can be either side of it. Null on 146,981 filings, including a handful the tape writes as impossible dates such as 19810431. e.g. 1987-03-13 | — |
| 9 |
approval_date
|
date | 27-34 | P4-APPROVAL-DATE |
The date RRC approved the Form P-4. Runs from 1976-11-14 to 2026-07-24 on this tape; null on 90,189 filings. e.g. 1987-05-27 | — |
| 10 |
new_well
|
text | 35 | P4-NEW-WELL |
Purpose-of-filing flag: Y when the P-4 was filed for a new well. 354,237 filings. One filing can carry several purposes at once. | — |
| 11 |
change_of_gatherer
|
text | 36 | P4-CHANGE-OF-GATHERER |
Purpose-of-filing flag: Y when the P-4 changes who gathers the lease's product. The commonest reason to file at all -- 2,131,157 of the 3,766,596 filings. e.g. Y | — |
| 12 |
change_of_purchaser
|
text | 37 | P4-CHANGE-OF-PURCHASER |
Purpose-of-filing flag: Y when the P-4 changes who buys the lease's product. 1,228,528 filings. e.g. Y | — |
| 13 |
change_of_nominator
|
text | 38 | P4-CHANGE-OF-NOMINATOR |
Purpose-of-filing flag: Y when the P-4 changes who nominates the lease's gas. 439,333 filings. e.g. Y | — |
| 14 |
change_of_purch_system
|
text | 39 | P4-CHG-PURCH-SYSTEM-NO |
Purpose-of-filing flag: Y when the P-4 changes the purchaser's gas system number rather than the purchaser. | — |
| 15 |
change_of_field
|
text | 40 | P4-CHANGE-OF-FIELD |
Purpose-of-filing flag: Y when the P-4 moves the lease to a different field. 26,670 filings. | — |
| 16 |
change_of_operator
|
text | 41 | P4-CHANGE-OF-OPERATOR |
Purpose-of-filing flag: Y when the P-4 transfers the lease to a different operator. 1,013,059 filings -- this is the column behind 'when did this lease change hands'. | — |
| 17 |
change_of_lease_name
|
text | 42 | P4-CHANGE-OF-LEASE-NAME |
Purpose-of-filing flag: Y when the P-4 renames the lease. The name it gave is the p4_lease_name row carrying the same sequence key. | — |
| 18 |
consolidation
|
text | 43 | P4-CONSOLIDATION-LEASE |
Purpose-of-filing flag: Y when the P-4 consolidates this lease with another. The lease it was consolidated into is a p4_lease_pointer row with reason C. | — |
| 19 |
subdivision
|
text | 44 | P4-SUBDIVISION-LEASE |
Purpose-of-filing flag: Y when the P-4 subdivides the lease. The leases it was split into are p4_lease_pointer rows with reason S. | — |
| 20 |
reclassification
|
text | 45 | P4-RECLASSIFICATION |
Purpose-of-filing flag: Y when the P-4 reclassifies the lease between the oil and gas schedules. | — |
| 21 |
special_form_filed
|
text | 46 | P4-SPECIAL-FORM-FILED |
Purpose-of-filing flag: Y when a special form was filed with the P-4. | — |
| 22 |
oil_field_transfer
|
text | 47 | P4-OIL-FIELD-TRANSFER |
Purpose-of-filing flag: Y when the filing transfers an oil field. Null on the older filings, which stop short of this byte. | — |
| 23 |
type_record
|
text | 51 | P4-TYPE-RECORD |
How the filing reached the database: R a regular P-4 (1,851,876), A an automatic change RRC generated (1,447,288), B a bridged record from the pre-1990 conversion (371,878), D a dummy P-4 with no real form behind it (92,735), T filed on tape (2,275), O the original questionnaire (1). The tape also carries C on 543 filings approved between 1989 and 1990, which the manual does not describe. e.g. R | — |
| 24 |
info_field_no
join
|
integer | 52-59 | P4-INFO-FIELD-NUMBER |
The field the lease was in at the time of THIS filing, as an eight-digit number. Zero on the 565,281 filings that carry no field -- the dummy and bridged ones -- which is a zero rather than a null because the tape writes zeros. The rest name 48,150 distinct fields, 48,048 of which are in PDQ's field directory. e.g. 5434500 | — |
| 25 |
info_operator_no
join
|
integer | 60-65 | P4-INFO-OPERATOR-NUMBER |
The P-5 number of the operator at the time of THIS filing, which is how the tape records a change of hands: compare it with the info_operator_no on the filing below it. Zero on 565,281 filings, 565,280 of them the same ones that carry no field. Of the 3,201,315 that carry a number, all but three resolve to the operator directory. e.g. 614700 | — |
| 26 |
p5_filing_on_tape
|
integer | 66-71 | P4-P5-NUMBER-FILING-ON-TAPE |
A pre-1990 P-5 number the conversion carried across. It is 0 on all 3,766,596 filings on the August 2026 tape, so there is nothing in this column to query. e.g. 0 | — |
p4_gatherer
14 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 8 | — |
| 4 |
sequence_key
key
join
|
integer | — | P4-SEQUENCE-DATE-KEY |
Which P-4 filing under this lease the row belongs to: the nines-complement key of p4_filing.sequence_key. The tape expresses it by position -- the row simply follows its filing -- and the loader carries it down, so a gatherer or a remark can be joined straight back to the filing it was named on. Every one of 5,000 sampled gatherer rows matches a filing. e.g. 80129291 | — |
| 5 |
gpn_ordinal
key
|
integer | — | — | 1-based position of this connection among its siblings under the same filing, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. e.g. 2 | — |
| 6 |
product_code
|
text | 3 | P4-GPN-PRODUCT-CODE |
What this connection moves: G gas well gas (5,376,504 rows), P casinghead gas (2,686,194), H condensate (2,005,482), O oil (1,807,098), F full well stream (253,468). A lease usually has several rows on one filing, one per product per company. e.g. G | — |
| 7 |
type_code
|
text | 4 | P4-GPN-TYPE-CODE |
What the named company does with it: G gatherer, the pipeline that takes it off the lease (6,960,980 rows); H purchaser, the company that buys it (3,318,796); I nominator, which schedules the gas (1,848,970). This is the column that turns the table into an answer: type_code = 'H' on the newest filing is who buys the lease's product. e.g. H | — |
| 8 |
percentage_key
|
numeric | 5-9 | P4-GPN-PERCENTAGE-KEY |
The tape's sort key for the connection, 9(1)V9(4). The manual says it is 1 minus actual_percent; on 62,553 of the 12,128,746 rows it is not -- 17,229 carry 1.0000 in both, and 1,198 carry a key greater than 1 (1,187 of them 8.9999), which no percentage can be. Read actual_percent for the split and leave this to the ordering it exists for. e.g. 0.1000 | — |
| 9 |
gpn_number
join
|
integer | 10-15 | P4-GPN-NUMBER |
The P-5 organization number of the gatherer, purchaser or nominator -- the join that names the company. 7,405 distinct numbers appear here and 7,400 of them resolve to the operator directory; only 28 rows of the 12.1 million carry one that does not, 19 of them a zero. e.g. 881272 | — |
| 10 |
purch_system_no
|
smallint | 16-19 | P4-GPN-PURCH-SYSTEM-NO |
A purchaser's own gas-system number, chosen by the purchaser and approved by RRC, which qualifies the P-5 number so one purchaser's several systems can be told apart. Zero where there is no system: 2,858,939 rows carry one, in 12,241 distinct purchaser-and-system combinations. e.g. 1 | — |
| 11 |
current_p4_filing
|
text | 20 | P4-GPN-CURRENT-P4-FILING |
1 on the 334,232 rows that are a gas PURCHASING SYSTEM named on the lease's current P-4; 0 on everything else, which includes every gatherer and nominator row whether or not the filing is current. Do not use it to find the current connections -- take the filing with filing_ordinal = 1 and read its rows. e.g. 0 | — |
| 12 |
actual_percent
|
numeric | 21-25 | P4-GPN-ACTUAL-PERCENT |
The share of production this connection takes, 9(1)V9(4), so 98% is 0.9800 and a whole-lease connection is 1.0000. 10,215,775 rows are whole-lease; the rest are splits, most often halves (548,275 rows) and quarters (167,168). e.g. 0.9000 | — |
| 13 |
inter_flag
|
text | 26 | P4-GPN-INTER-FLAG |
Y where the purchaser sells the gas in the interstate market (986,906 rows). A lease's gas can be sold in both markets, so this and intra_flag are not exclusive. e.g. N | — |
| 14 |
intra_flag
|
text | 27 | P4-GPN-INTRA-FLAG |
Y where the purchaser sells the gas in the intrastate market (6,911,224 rows). e.g. Y | — |
p4_lease_name
9 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 5 | — |
| 4 |
name_ordinal
key
|
integer | — | — | 1-based position of this name among its siblings under the same lease, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. Newest first, the same order as the filings, so 1 is the name the lease carries now. e.g. 1 | — |
| 5 |
sequence_key
join
|
integer | 3-10 | P4-LEASE-SEQUENCE-DATE-KEY |
The nines key of the P-4 filing that gave the lease this name, the same value as p4_filing.sequence_key. 329,932 of the 579,958 name rows carry the 99999999 dummy, which is a name older than the filing history. e.g. 80228996 | — |
| 6 |
sequence_date
|
date | 3-10 | P4-LEASE-SEQUENCE-DATE-KEY |
sequence_key decoded. Null on the 329,937 rows whose key does not decode. e.g. 1977-10-03 | — |
| 7 |
effective_key
|
integer | 11-18 | P4-LEASE-EFFECT-DATE-KEY |
99999999 minus the date the name took effect. 373,357 rows carry the 99999999 dummy here, more than carry it in sequence_key. e.g. 80229198 | — |
| 8 |
effective_date
|
date | 11-18 | P4-LEASE-EFFECT-DATE-KEY |
effective_key decoded: when the lease started carrying this name. Null on 377,416 rows. e.g. 1977-08-01 | — |
| 9 |
lease_name
|
text | 19-50 | P4-LEASE-NAME |
The lease name as it was filed, up to 32 characters and written the way RRC files it -- surname first, as in 'SCOTT, W. C.'. 241,199 distinct names across 579,958 rows, because a name recurs across leases and a lease keeps every name it has had. e.g. KELLY, LEILA F. | — |
p4_lease_pointer
11 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. On THIS table it is 'O' on all 17,373 rows, at both ends of every pointer: the August 2026 tape records no consolidation or subdivision of a gas well at all, so a query filtered to gas returns nothing here and that is the file, not the filter. e.g. O | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 153 | — |
| 4 |
pointer_ordinal
key
|
integer | — | — | 1-based position of this pointer among its siblings under the same lease, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. e.g. 1 | — |
| 5 |
effect_key
|
integer | 3-10 | P4-LSEPTR-EFFECT-DATE |
99999999 minus the date the consolidation or subdivision took effect, the tape's key for it. e.g. 80089298 | — |
| 6 |
effect_date
|
date | 3-10 | P4-LSEPTR-EFFECT-DATE |
effect_key decoded: when the consolidation or subdivision took effect. e.g. 1991-07-01 | — |
| 7 |
pointer
|
text | 11 | P4-LSEPTR-POINTER |
Which way the link runs: F points FROM the old lease this one came out of, I points INTO the lease this one went into. Both directions are on the tape, 8,756 rows one way and 8,617 the other, so a lease can be followed forwards or backwards. e.g. I | — |
| 8 |
to_oil_gas_code
join
|
text | 12 | P4-LSEPTR-OIL-GAS-CODE |
Schedule of the lease at the other end of the pointer. 'O' on every row, as oil_gas_code is: a pointer never crosses from the oil schedule to the gas one on this tape. e.g. O | Oil or gas schedule |
| 9 |
to_district_no
join
|
text | 13-14 | P4-LSEPTR-DISTRICT |
Internal district number of the lease at the other end of the pointer, in the same 01-14 numbering as district_no. e.g. 01 | RRC district (internal number) |
| 10 |
to_lease_rrcid
join
|
integer | 15-20 | P4-LSEPTR-LEASE-RRCID |
Lease number or gas well ID of the lease at the other end of the pointer. e.g. 3612 | — |
| 11 |
reason
|
text | 21 | P4-LSEPTR-REASON |
Why the two leases are linked: C a consolidation or unitization (10,189 rows), S a subdivision (7,184). e.g. C | — |
p4_lease_remark
9 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 57515 | — |
| 4 |
remark_ordinal
key
|
integer | — | — | 1-based position of this remark line among its siblings under the same lease, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. e.g. 1 | — |
| 5 |
remark_number
|
smallint | 3-4 | P4-LSE-REMARK-NUMBER |
RRC's numbering of the remarks on the lease, counting DOWN from 99 as the filing remarks do. e.g. 99 | — |
| 6 |
line_no
|
smallint | 5-6 | P4-LSE-REMARK-LINE-NO |
Which line of the remark this is, 01 upwards. e.g. 1 | — |
| 7 |
remark_date
|
date | 7-14 | P4-LSE-REMARK-DATE |
The date the remark was entered. e.g. 2015-10-01 | — |
| 8 |
remark_text
|
text | 15-80 | P4-LSE-REMARK-TEXT |
One 66-character line of a note about the LEASE rather than about one filing -- a field-operations hold, a reincarnated lease, a contact to refer to. e.g. LEASE REINCARNATED EFFECTIVE 10/01/13. | — |
| 9 |
print_on_schedule
|
text | 81 | P4-LSE-REMARK-PRINT-SCHED-FLAG |
Y on the 5,843 remarks RRC prints on the proration schedule itself; N on 14,283, which are internal; blank on two. e.g. N | — |
p4_lease_restriction
17 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 11 | — |
| 4 |
legal_hold
|
text | 3 | P4-LEGAL-HOLD-CODE |
The Legal Enforcement hold on the lease: A a bond hold (4 leases), B a plug order (9,663), C a 14(b)(2) hold (32,453, the commonest by far), F pollution (1,260), G a complaint (97). Null on 24,939 of the rows, where the restriction is one of the other columns, and '0' on three. 68,419 of the 548,099 leases carry a restriction row at all; the other 479,680 have no row here, not a row of blanks. e.g. C | — |
| 5 |
fl_14b2_block
|
text | 4 | P4-FL-14B2-BLOCK-FLAG |
Y where a field-operations 14(b)(2) block is on the lease. 1,433 leases. | — |
| 6 |
field_ops_hold
|
text | 5 | P4-FIELD-OPS-HOLD-CODE |
Y where Field Operations has a hold on the lease. 4,365 leases. | — |
| 7 |
district_hold
|
text | 6 | P4-DISTRICT-HOLD-CODE |
The district office's hold: A a hold (15,888 leases) and B an SFP-4 (257). The manual's third value, C for an SFP-NSF, appears on no lease of the August 2026 tape; 29 leases carry Y and four carry '0', neither of which the manual describes. | — |
| 8 |
sf_clean_up_hold
|
text | 7 | P4-SF-CLEAN-UP-HOLD-CODE |
Y where a surface clean-up hold is on the lease. 4,141 leases. | — |
| 9 |
le_plug_14b2_block
|
text | 8 | P4-LE-PLG-14B2-BLOCK-FLAG |
Y where Legal Enforcement's plugging hold also blocks 14(b)(2) relief. 425 leases. | — |
| 10 |
le_poll_14b2_block
|
text | 9 | P4-LE-POLL-14B2-BLOCK-FLAG |
Y where Legal Enforcement's pollution hold also blocks 14(b)(2) relief. 81 leases. | — |
| 11 |
ds_hold_14b2_block
|
text | 10 | P4-DS-HOLD-14B2-BLOCK-FLAG |
Y where the district office's hold also blocks 14(b)(2) relief. 70 leases. | — |
| 12 |
ds_sfp4_14b2_block
|
text | 11 | P4-DS-SFP4-14B2-BLOCK-FLAG |
Y where the district office's SFP-4 hold also blocks 14(b)(2) relief. 50 leases. | — |
| 13 |
ds_sfnsf_14b2_block
|
text | 12 | P4-DS-SFNSF-14B2-BLOCK-FLAG |
Y where the district office's SFP-NSF hold also blocks 14(b)(2) relief. No lease on the August 2026 tape carries one, which follows from district_hold: the SFP-NSF hold it would qualify is itself unused. | — |
| 14 |
sf_14b2_block
|
text | 13 | P4-SF-14B2-BLOCK-FLAG |
Y where a surface clean-up hold blocks 14(b)(2) relief. 33 leases, against the 4,141 that carry the clean-up hold itself. | — |
| 15 |
gfc_14b2_block
|
text | 14 | P4-GFC-14B2-BLOCK-FLAG |
Y where a gas-flare-certification problem blocks 14(b)(2) relief. 891 leases. | — |
| 16 |
other_14b2_block
|
text | 15 | P4-OTHER-14B2-BLOCK-FLAG |
Y where some other hold blocks 14(b)(2) relief. 60 leases. | — |
| 17 |
orphan_well_hold
|
text | 16 | P4-ORPHAN-WELL-HOLD-CODE |
Y where the lease is held as an orphan well. 514 leases. | — |
p4_remark
10 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 2 | — |
| 4 |
sequence_key
key
join
|
integer | — | P4-SEQUENCE-DATE-KEY |
Which P-4 filing under this lease the row belongs to: the nines-complement key of p4_filing.sequence_key. The tape expresses it by position -- the row simply follows its filing -- and the loader carries it down, so a gatherer or a remark can be joined straight back to the filing it was named on. Every one of 5,000 sampled gatherer rows matches a filing. e.g. 79759486 | — |
| 5 |
remark_ordinal
key
|
integer | — | — | 1-based position of this remark line among its siblings under the same filing, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. e.g. 1 | — |
| 6 |
remark_number
|
smallint | 3-4 | P4-REMARK-NUMBER |
RRC's own numbering of the remarks on a filing, counting DOWN: the first remark entered is 99, the next 98. It groups the lines that belong to one remark; line_no orders them within it. e.g. 99 | — |
| 7 |
line_no
|
smallint | 5-6 | P4-REMARK-LINE-NO |
Which line of the remark this is, 01 upwards. A remark runs to as many lines as it needs. e.g. 1 | — |
| 8 |
remark_date
|
date | 7-14 | P4-REMARK-DATE |
The date the remark was entered. e.g. 2024-05-13 | — |
| 9 |
remark_text
|
text | 15-80 | P4-REMARK-TEXT |
One 66-character line of a clerk's note on the filing. This is where the human explanation lives -- why a dummy P-4 was built, what a bridged record replaced, which office approved a change. e.g. DUMMY P-4 REMOVED, ADDED P-4 USING MAINFRAME BUILT DATE OF | — |
| 10 |
hold_flag
|
text | 81 | P4-REMARK-HOLD-FLAG |
Y on the 3,075,413 remarks that may not be changed. The tape also writes '0' on 158,036 and N on 107,331, and the loader stores the character rather than folding '0' into N. e.g. N | — |
p4_severance
16 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 2 | — |
| 4 |
severance_ordinal
key
|
integer | — | — | 1-based position of this severance letter among its siblings under the same lease, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. Newest first. e.g. 1 | — |
| 5 |
effective_key
|
integer | 3-10 | P4-SEVERANCE-EFFECTIVE-DTE-KEY |
99999999 minus the date the severance takes effect. e.g. 79829093 | — |
| 6 |
effective_date
|
date | 3-10 | P4-SEVERANCE-EFFECTIVE-DTE-KEY |
effective_key decoded: the date the severance takes effect. e.g. 2017-09-06 | — |
| 7 |
issued_by
|
text | 11-12 | P4-SEVERANCE-ISSUED-BY |
Which part of the Commission severed the lease: PC production clerk (274,107 letters), FO field operations (265,384), P5 the P-5 section (203,448), PA proration analyst (185,030), UI the UIC section (96,955), AD pre-audit (14,881), EN engineering (3,788). CA (commingle audit) and LE (legal enforcement) are in the manual and not on this tape. e.g. P5 | — |
| 8 |
reason
|
smallint | 13-14 | P4-SEVERANCE-REASON |
Why the lease was severed. The three commonest are 15 delinquent P-5 (200,683), 19 delinquent H-15 (185,282) and 1 delinquent production report (181,813); the rest run 2 discrepant production, 3 no oil but casinghead production, 4 no gas but condensate, 5 oil overproduction, 6 gas overproduction, 7 delinquent proration forms, 8 other, 9 production not equal to gathering, 10 delinquent H-10, 11 delinquent H-5, 12 failure to prove authority, 13 comparable-operator violations, 14 rule violations, 16 P-4 discrepancy, 17 production without an allowable, 18 reissue of a severance, 20 H-15 violation, 21 non-compliant SWR 32, 22 H-15/W-1X violation, 23 oil or casinghead overproduction, 24 delinquent H-10H, and 99 severed before the 1990 conversion (17 letters). e.g. 15 | — |
| 9 |
issue_date
|
date | 15-22 | P4-SEVERANCE-ISSUE-DATE |
The date RRC issued the severance letter. The oldest on the tape is 1965-07-15 and the newest 2026-07-23. e.g. 2017-10-06 | — |
| 10 |
reconnect_issue_date
|
date | 23-30 | P4-RECONNECT-ISSUE-DATE |
The date RRC issued the reconnect letter. Present on 987,463 of the 1,043,593 letters, which makes it the better of the two reconnect columns: it is null on 56,130, and 56,092 of those carry no actual reconnect date either. Those 56,092 letters, over 31,197 leases, are the ones with no sign of a reconnect at all. | — |
| 11 |
actual_reconnect_date
|
date | 31-38 | P4-ACTUAL-RECONNECT-DATE |
The date the lease was actually reconnected. Null on 757,750 of the 1,043,593 letters -- but 701,658 of those DID have a reconnect letter issued, so a null here is usually an uncaptured date rather than a lease still severed. Reading it as 'severed and not restored' overstates the open severances by more than ten times; take reconnect_issue_date IS NULL as well, which leaves 56,092 letters over 31,197 leases. | — |
| 12 |
uic_contact_code
|
smallint | 39-41 | P4-UIC-SEVERANCE-CONTACT-CODE |
The UIC contact this severance is routed to, where the UIC section issued it. Zero on 943,532 letters, which is most of them. e.g. 0 | — |
| 13 |
commingle_flag
|
text | 42 | P4-COMMINGLE-SEVERANCE-FLAG |
Whether the letter severed the original lease (O, 627,082 letters) or a commingled one (C, 1,326). The tape also writes N on 155,286 and '0' on 101,481, neither of which the manual describes, and leaves 158,418 blank. | — |
| 14 |
reissue_fee_flag
|
text | 43 | P4-REISSUE-FEE-RECEIVED-FLAG |
Whether the reissue fee has been received: Y on 130,691 letters, N on 106,793, '0' on 49,412, and blank on the 756,697 where no fee was required. e.g. N | — |
| 15 |
reissue_fee_date
|
date | 44-51 | P4-REISSUE-FEE-RECEIVED-DATE |
The date the reissue fee was received. | — |
| 16 |
uic_letter_hold
|
text | 52 | P4-UIC-SEVER-LETTER-HOLD-FLAG |
Y on the 275 letters held by the UIC section. The tape writes the not-held case as '0' on 528,486 and N on 451,924, and leaves 62,908 blank. e.g. N | — |
p4_severance_remark
7 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | P4-OIL-GAS-CODE |
Which schedule the lease is carried on: O an oil lease, G a gas well. 294,582 gas wells and 253,517 oil leases. Part of the key -- oil lease 27587 and gas well 27587 in the same district are different leases. e.g. G | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | P4-DISTRICT |
RRC's INTERNAL district number, 01-14, which is what this tape stores and what every key and join in this family uses. It is not the district the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is District 09 and 14 is District 10. Reading 10 as District 10 moves 74,424 Permian leases to the Panhandle. The printed spelling is on p4_lease.district. No lease on the August 2026 tape is in internal district 12, which is District 8B. e.g. 01 | RRC district (internal number) |
| 3 |
lease_rrcid
key
join
|
integer | — | P4-LEASE-RRCID |
The oil lease number or the gas well RRC ID, stored as a whole number, so PDQ's '002092' is 2092 here. Unique only together with the district and the oil/gas code, which is why all three are on every table. e.g. 2 | — |
| 4 |
severance_ordinal
key
join
|
integer | — | — | Which severance letter under this lease the remark belongs to, matching p4_severance.severance_ordinal. Carried down by the loader from the letter above it on the tape. e.g. 1 | — |
| 5 |
remark_ordinal
key
|
integer | — | — | 1-based position of this remark line among its siblings under the same severance letter, and part of the key. EZRRC's, not RRC's: the tape is an IMS hierarchy unloaded in order and expresses the ordering by position alone. e.g. 1 | — |
| 6 |
remark_flag
|
text | 3 | P4-SEVERANCE-REMARK-FLAG |
Where the line appears: L is printed on the letter the operator receives (4,201,766 rows), W is a working note that is not (557,468). The tape also carries '7' on 129 rows, which the manual does not describe. e.g. L | — |
| 7 |
remark_text
|
text | 4-35 | P4-SEVERANCE-REMARK-TEXT |
One 32-character line of the severance letter -- narrow, so the text of one sentence runs over several rows in order. Read them by remark_ordinal within a severance. e.g. FAILURE TO COMPLETE RENEWAL OF | — |
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
RRC district (internal number) 14 values
Read by district_no, district_no, district_no, district_no, district_no, to_district_no, district_no, district_no, district_no, district_no, 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
Oil or gas schedule 2 values
Read by oil_gas_code, oil_gas_code, oil_gas_code, oil_gas_code, oil_gas_code, to_oil_gas_code, oil_gas_code, oil_gas_code, oil_gas_code, oil_gas_code, oil_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.
| Code | Means |
|---|---|
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.
Certificate of Authorization P-4 (Oil and Gas) joins to PDQ Regulatory Lease Directory on Oil gas code = Oil gas code and District number = District number and Lease rrcid = Lease number — one row here matches one row there.
is the lease in PDQ's directory
The strongest join on this tape, and the one that gets a lease NAME and a county onto a P-4. 548,047 of the 548,099 leases resolve to exactly one directory row, and every one of the directory's 548,047 rows resolves back -- the two files are the same population of leases seen from two sides. Both write RRC's INTERNAL district number, so no translation is needed here, unlike the proration ledgers below. Keep oil_gas_code in the join: PDQ carries oil leases and gas wells in one table on the same lease_no, and without it a lease matches the other schedule's row of the same digits. 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.oil_gas_code = pdq-regulatory-lease-directory.oil_gas_code AND p4-certificate-of-authorization.district_no = pdq-regulatory-lease-directory.district_no AND p4-certificate-of-authorization.lease_rrcid = pdq-regulatory-lease-directory.lease_no
Certificate of Authorization P-4 (Oil and Gas) joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
is operated by
The lease's CURRENT operator, resolved to a company with a P-5 status and an address. 545,098 of the 548,099 leases match, over 29,516 distinct operators; the 3,001 that miss are numbers RRC has retired from the directory since the lease was last filed on. This is the operator, not the gatherer or the purchaser. Those carry their own P-5 numbers on p4_gatherer, which comes with the download -- 7,400 of its 7,405 distinct numbers resolve to this same directory -- but that column is on a child table and cannot be an edge here.
p4-certificate-of-authorization.operator_no = p5-organization-ascii.id
Certificate of Authorization P-4 (Oil and Gas) joins to PDQ Field Directory on Field number — many rows here share a single row 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
Certificate of Authorization P-4 (Oil and Gas) joins to Statewide Gas Well Database on District number = District number and Lease rrcid = Gas RRC ID — one row here matches one row there.
is this gas well
A gas 'lease' is one well on both files, so this is one row to one row -- and it is exact: every one of the gas well database's 138,901 wells finds its P-4 lease, and 138,901 of the 140,121 gas leases still on the schedule find their well. Across all 294,582 gas leases it is 47%, the rest having left the schedule. Restrict this side to oil_gas_code = 'G'. Internal district numbers on both sides, text here and smallint there. 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.district_no = statewide-gas-well-database.district_no AND p4-certificate-of-authorization.lease_rrcid = statewide-gas-well-database.gas_rrc_id
Certificate of Authorization P-4 (Oil and Gas) joins to Statewide Production Data — Gas on District number = District and Lease rrcid = Gas RRC ID — one row here matches one row there.
reports production as
The same bridge for gas: 231,869 of the production tape's 232,028 gas wells find their P-4 lease. Internal district on both sides, as above. Restrict this side to oil_gas_code = 'G'.
p4-certificate-of-authorization.district_no = statewide-production-data-gas.district AND p4-certificate-of-authorization.lease_rrcid = statewide-production-data-gas.gas_rrc_id
Certificate of Authorization P-4 (Oil and Gas) joins to Statewide Production Data — Oil on District number = District and Lease rrcid = Lease number — one row here matches one row there.
reports production as
From who may take the lease's oil to how much came out of it. 175,925 of the production tape's 176,035 oil leases find their P-4 lease. PDA001 writes RRC's internal district number under the name `district`, which is the same vocabulary as this tape's `district_no` and NOT the same as this tape's `district`. Joining the printed column to it would match and be wrong. Restrict this side to oil_gas_code = 'O'.
p4-certificate-of-authorization.district_no = statewide-production-data-oil.district AND p4-certificate-of-authorization.lease_rrcid = statewide-production-data-oil.lease_no
Certificate of Authorization P-4 (Oil and Gas) joins to Statewide Oil Well Database on District number = District number and Lease rrcid = Lease number — one row here matches many rows there.
has these oil wells
From the lease's P-4 to the wells on it. Read from the well database's side this is all but total: 84,070 of its 84,071 distinct leases find a P-4 lease. Read from this side it is a third -- 84,070 of 253,517 oil leases -- because the well database holds only leases currently on the proration schedule and this tape is the whole history, 310,496 of its leases having been removed. Among the oil leases still ON the schedule, 84,045 of 97,482 match. Restrict this side to oil_gas_code = 'O'. Both files write RRC's internal district number, so the districts agree without translation; the well database stores it as a smallint and this tape as text. 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.district_no = statewide-oil-well-database.district_no AND p4-certificate-of-authorization.lease_rrcid = statewide-oil-well-database.lease_no
Certificate of Authorization P-4 (Oil and Gas) joins to Gas Ledger — Wells on District = District and Lease rrcid = Gas RRC ID — one row here matches one row there.
is the ledger's well
The same partial join for gas, with the same one repair, and counted over the whole table rather than sampled: 118,665 of the ledger's 140,992 wells match on the columns as they stand, and the 22,327 that do not are the four districts the ledger pads to three bytes -- 06E, 07B, 07C and 08A, which this tape writes 6E, 7B, 7C and 8A. Strip that leading zero and every one of the 140,992 matches. The gas RRC id alone would also reach 140,992 -- it is unique statewide -- but the district is kept so the two ledger edges read alike and so a reader sees which districts the shortfall is in.
p4-certificate-of-authorization.district = gas-ledger-wells.district AND p4-certificate-of-authorization.lease_rrcid = gas-ledger-wells.gas_rrc_id
Certificate of Authorization P-4 (Oil and Gas) joins to Oil Ledger — Leases on District = District and Lease rrcid = Lease number — one row here matches one row there.
is the ledger's lease
The one join on this tape that uses `district` rather than `district_no`, because the proration ledger writes the PRINTED designation and so does this column. It is partial as the columns stand and the shortfall is one known class, not a scatter. Counted over the whole table rather than sampled: 74,456 of the ledger's 98,388 leases match, and the 23,932 that do not are EXACTLY the four districts the ledger pads to three bytes -- 06E, 07B, 07C and 08A, which this tape writes 6E, 7B, 7C and 8A. Strip that leading zero and all 98,388 match, verified on the four districts alone. Nothing it does return is wrong: both sides speak the printed vocabulary, so a district that matches means the same district. That is what separates this from the ledger's own join to the W-10, rejected above -- there the district disagreed as well as being padded.
p4-certificate-of-authorization.district = oil-ledger-leases.district AND p4-certificate-of-authorization.lease_rrcid = oil-ledger-leases.lease_no
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. Available by the 27th.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.p4_lease
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.