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

WLA001K, the oil half. RRC's live well database, dumped monthly as one 228-byte EBCDIC record per IMS segment: 293,069 wells on the oil proration schedule, each carrying up to twenty-six monthly reporting cycles, the previous allowables issued inside each cycle, the forms the operator still owes, the W-10 tests behind the potential, casing-leakage and Panhandle detail, UIC pointers and free-text remarks — 12,111,947 rows across eighteen tables.

The spine is WL-ROOT-KEY, the eight-digit RRC internal well id that never changes even when the well moves lease. It is what the historical ledger points at, and PDQ's well completion table carries it as well_root_no, so this is the tape that ties the proration world to the wellbore world: 293,022 of the 293,069 wells resolve there, and PDQ's row carries the API number this tape does not.

What you can do with it

Follow one well's allowable month by month for two years and see what changed it; find every well whose allowable is being held back for a form (427,648 cycles are missing a W-10, 366,362 a W-2); read the W-10 test history behind a potential, back to 2007 rather than the thirteen cycles the W-10 status file keeps; list the wells subject to Rule 14(b)(2), sealed, or transferring allowable to a neighbour.

Gotchas

Everything on this tape is ON the schedule. All 293,069 roots carry on_off_sched_ind 'N' and removed_reason '00', so a plugged or removed well is simply absent — this is the current schedule, not a history of wells. The wellbore database is where a plugged well lives.

district_no is RRC's INTERNAL district number, not the designation 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 101,421 Permian wells to the Panhandle. The W-10 status file next door writes the printed form, so the two cannot be joined on the district column as they stand.

county_code is '000' in every one of the 293,069 rows. The manual says so — 'reserved for future use; currently this data is stored in the Well Bore and Drilling Permits Databases' — and it is not a load fault. There is also no operator number, no field number and no API number anywhere on this tape. The way to all four is wlroot_key to PDQ's well completion table, or district + lease number to PDQ's regulatory lease directory (293,049 of 293,069 resolve).

well_no is right-aligned in six characters, so well 1 is stored as ' 1' — 232,882 of the 293,069 rows carry leading spaces. Trim before comparing it with anything.

unit_no is null on 207,419 wells because the tape writes the mainframe's HIGH-VALUES byte there, which the manual documents as 'not in a unit'. unit_no_2 is a different field: the Yates-field unit letter, '0' on 286,261 wells.

The 26-month window rolls. The tape fetched in August 2026 holds cycles 2024-07 through 2026-08 and nothing older, so a history longer than that has to be accumulated by keeping the monthly snapshots. The W-10 segment is the exception: it keeps up to fifteen tests per well and reaches back to cycle 2007-08, with test dates from 1990.

Zero is a value, not a blank. The packed-decimal amounts arrive as a true 0 for a well with no allowable, and only RRC's all-nines 'not applicable' sentinel becomes null.

The W-10 tests here are NOT the Oil Well Status (26 Month W-10) dataset. That file is OLA001K/wlf607, one row per test with the district printed and the lease and well number on every row, and it holds thirteen cycles; this is WLA001K's own W-10 segment, 609,334 tests hung off the well root by wlroot_key, deeper in history and with no lease key of its own. Use the status file to sweep tests across leases; use this one when you are already looking at a well.

Sentinel dates are everywhere: 0000-00-00, 00000000 and 1900-01-01 all mean "not recorded". The upstream loader turns the unparseable ones into NULL, but a 1900 date that parsed cleanly is still a placeholder, not a fact.

Record layout

215 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.

wl_oil_well 29 columns

This is the table you get when you download or query Statewide Oil Well Database.

Record layout for wl_oil_well — 29 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer 3-10 WL-OIL-ROOT-KEY The eight-digit RRC internal well id. It never changes, even when the well moves to a different lease, and it is the value the historical ledger's LDGSDATA-WLROOT-KEY and PDQ's well_root_no point at -- 293,022 of these 293,069 wells resolve to a PDQ well completion, which is where the API number is. e.g. 133922
2 on_off_sched_ind text 11 WL-OIL-ON-OFF-SCHED-INDICATOR 'N' on schedule, 'Y' off it. Every one of the 293,069 rows is 'N': a well that leaves the oil schedule leaves this tape.
3 oil_gas_code text 12 WL-OIL-OR-GAS 'O' on every row -- this is the oil tape. Oil or gas schedule
4 district_no join smallint 13-14 WL-OIL-NUMERIC-DISTRICT RRC's INTERNAL district number, 01 to 14. Not the designation the industry prints: 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08 (101,421 wells), 11 is 8A, 13 is District 09 and 14 is District 10. 12 (8B) is not used. e.g. 10 RRC district (internal number)
5 lease_no join integer 15-19 WL-OIL-LEASE-NUMBER The five-digit oil lease number, unique only within its district. Stored as an integer, so PDQ's zero-padded '05082' is 5082 here. e.g. 55
6 unit_no text 20 WL-OIL-UNIT-NUMBER Unit identifier, one character; a digit usually names a waterflood grouping. Null on 207,419 wells, where the tape writes the mainframe's HIGH-VALUES byte -- the manual's documented 'not in a unit'.
7 well_no join text 21-26 WL-OIL-WELL-NUMBER The operator's well number, right-aligned in six characters: well 1 is stored as ' 1'. 232,882 of the 293,069 rows carry leading spaces, so trim before comparing it with anything. e.g. 4
8 removed_reason text 27-28 WL-OIL-REMOVE-FROM-SCHED-REASN Why the well left the oil schedule: 01 plugged and abandoned, 02 converted to a fresh water well, 05 transferred to another field, 06 worked over to a different field or reservoir, 07 reclassed to a gas well, 08 granted downhole commingling, 09 added in error. '00' -- not removed -- on 290,818 rows, and null on 2,250: a removed well drops off this tape at the next roll, so only one row of the August 2026 file carries a reason at all. e.g. 00
9 removed_date date 29-36 WL-OIL-REMOVE-FROM-SCHED-DATE Date the well was removed from the schedule. Set on one row.
10 reclassed_well_key join integer 37-44 WL-OIL-RECLASSED-WELL-POINTER The well id on the GAS tape this well was reclassed to or from, carried on 1,843 wells. Only 6 of them point at a root still on the gas tape, so read it as a historical pointer rather than a join key.
11 prob_prevent_allow_flag text 45 WL-OIL-PROB-PREVENT-ALLOW-FLAG 'Y' where a problem is severe enough that RRC's monthly calculate skips the well and no allowable can be issued until it clears. 'N' on every row of this tape.
12 reservoir text 47-51 WL-OIL-RESERVOIR The reservoir the well was actually completed in, five characters. Unused in practice: '00000' on 173,517 wells, null on 119,363, and a real name on fewer than 200.
13 bay_estuary_flag text 52 WL-OIL-BAY-OR-ESTUARY 'Y' on the 13 wells completed in a bay or estuary, which are eligible for the averaged AEZ (adjacent estuarine zone) allowable.
14 w10_exc_to_svy_flag text 57 WL-OIL-W10-EXC-TO-SVY-FLAG 'Y' where the well has an exception to filing the W-10 survey. Four wells of 293,069.
15 county_code text 58-60 WL-OIL-ONSHORE-CO-CODE '000' in every one of the 293,069 rows. The manual says why: the item is reserved for future use, and 'currently this data is stored in the Well Bore and Drilling Permits Databases'. It is not a load fault, and there is no other county on this tape. e.g. 000
16 original_potential numeric measured in bbl/d 61-65 WL-OIL-ORIGINAL-POTENTIAL The well's ORIGINAL potential in barrels per day, to three decimal places -- what it could produce when completed, as against the working potential that tracks current production. Used by fields whose allocation formula is potential-based, such as East Texas, and zero on the wells whose field is not. e.g. 0.000
17 unit_no_2 text 69 WL-OIL-UNIT-NO The Yates-field unit letter (WL-OIL-UNIT-NO), a different item from unit_no above. '0' on 286,261 wells, meaning not in a Yates unit. e.g. 0
18 unit_value numeric 70-72 WL-OIL-UNIT-VALUE Productive potential of a Yates-field unit, proportional to the other units in the field: 1.000 is a 100 percent unit, 0.500 a half, 0.375 a 37 1/2 percent unit. Zero elsewhere.
19 survey_eff_yyyymm integer 73-78 WL-OIL-SURVEY-EFF-DATE Effective month of the well's current W-10 survey, as one YYYYMM integer. This is the clock a delinquent-survey check runs against; 244,367 wells carry one. e.g. 202608
20 new_wb_connect_date date 79-86 WL-OIL-NEW-WB-CONNECT-DATE Panhandle new-wellbore date: a new hole earns a higher casinghead gas limit for twelve months. Only 4,033 wells carry a value and 3,490 of those decode to a year before 1900, so the column is mostly filler the tape never cleared -- treat a pre-1900 date as no date.
21 subject_14b2_flag text 87 WL-OIL-SUBJECT-TO-14B2-FLAG 'Y' on the 80,612 inactive wells subject to Statewide Rule 14(b)(2), which requires an abandoned well to be plugged. e.g. N
22 uic_violation_flag text 88 WL-OIL-UIC-VIOLATION-FLAG 'Y' on 1,799 injection wells that are subject to 14(b)(2) and denied the extension because of a UIC violation.
24 ext_state_plug_flag text 90 WL-OIL-EXT-FOR-STATE-PLUG-FLAG 'Y' where the well has been extracted to begin being plugged with state funds under SB 1103. Thirty-seven wells.
25 cert_hb1975_flag text 91 WL-OIL-CERT-HB-1975-FLAG The HB 1975 two-year-inactive tax certification: A automatic, M manual, '0' not certified (291,317 wells). The tape also holds 66 'N' and one 'Y' that the manual does not list.
26 cert_effective_yyyymm integer 92-97 WL-OIL-CERT-EFFECTIVE-DATE Month the HB 1975 certification took effect, as one YYYYMM integer. All 1,681 of them fall between 1993-09 and 1996-02.
27 cert_letter_date date 98-105 WL-OIL-CERTIFICATION-LTR-DATE Date RRC wrote to the operator about the HB 1975 certification.
28 shut_in_yyyymm integer 106-111 WL-OIL-SHUT-IN-DATE Month the well was set to shut-in status, as one YYYYMM integer. 101,432 of the 293,069 wells carry one; null means not shut in.
29 pend_removal_14b2_flag text 112 WL-OIL-PEND-REMOVAL-14B2-FLAG 'Y' on 2,603 wells that are working off 14(b)(2) status by producing again -- three consecutive producing months clear it. The tape also writes '0' where the question does not apply.

wl_oil_casing_leakage 4 columns

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

Record layout for wl_oil_casing_leakage — 4 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 east_texas_seq key integer Which East Texas row of this well the designation hangs under -- its `seq`.
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 designated_well_key join integer 3-10 The well id of a well designated by hearing to size this well's casing-leakage transfer. Another root key on this same tape.

wl_oil_east_texas 13 columns

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

Record layout for wl_oil_east_texas — 13 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 eswa_bonus_amt smallint measured in bbl/d 3-4 Earned salt water allowable: bonus barrels given to the wells on a lease because one of them re-injects salt water into the Woodbine sand it came from. Roughly one barrel of oil per 115 barrels re-injected.
4 tswa_bonus_amt smallint measured in bbl/d 5-6 Transferred salt water allowable -- the same bonus, but credited to wells on a lease other than the one doing the injecting.
5 clat_flag text 7 'C' where this is a casing-leakage well: one plugged for a leak in its surface or production casing, with its allowable transferred elsewhere so the operator has a reason to plug it. e.g. N
6 designated_flag text 8 'D' where this well is one of the up to four wells nearest a casing-leak well, which is how the size of that transfer is worked out. e.g. D
7 key_well_flag text 9 'Y' on a key well: shut in but capable of producing, kept for periodic reservoir-pressure tests and still given an allowable. e.g. N
8 clat_remarks text 10-59 Fifty characters of free text about the plugged casing-leakage well.
9 wor_exception_flag text 60 'Y' where the well has an exception to the East Texas water-oil ratio rule, which otherwise limits it to 15 barrels of salt water per barrel of top allowable.
10 water_well_shut_down text 61 'Y' where the well is shut in because its last test showed 100 barrels of water a day or more; its allowable is produced by the other wells on the lease.
11 clat_removal_date date 62-69 Date the casing-leakage allowable transfer was removed.
12 clat_plugged_out_amt smallint measured in bbl/d 70-72 The allowable in force when the well was plugged for the leak.
13 clat_plugged_out_code text 73 Type of allowable it had then: P prorated, M marginal.

wl_oil_forms_lacking 4 columns

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

Record layout for wl_oil_forms_lacking — 4 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own. e.g. 646
2 cycle_yyyymm key integer The reporting cycle this row belongs to, as one YYYYMM integer, carried down from the reporting-cycle segment above it on the tape. e.g. 202608
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 form_lacking text 3-6 The form the operator still owes before this well can be given an allowable for the cycle: W-10, W-2, PLAT, P-12, P-1, P-5, P-4, P-15, LOG (electrical log), W-12, W-15, L-1, R-37 and R-38 (the Rule 37/38 exception), and OTHR. The August 2026 tape is dominated by W-10 (427,648 rows) and W-2 (366,362); 75,968 are OTHR, and an OTHR row is spelled out in the forms-lacking description table beside it. e.g. W-10

wl_oil_forms_lacking_desc 5 columns

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

Record layout for wl_oil_forms_lacking_desc — 5 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 cycle_yyyymm key integer The reporting cycle this row belongs to, as one YYYYMM integer, carried down from the reporting-cycle segment above it on the tape.
3 forms_lacking_seq key integer Which forms-lacking row of the same cycle this describes -- its `seq`. The tape hangs the description under the form record above it and carries no key of its own.
4 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
5 form_description text 3-22 Twenty characters naming the form, used only where the row above is 'OTHR'. Free text, so 'P4 W/VALID GATHERER' and 'FROM OLD SYSTEM' sit beside each other. e.g. P4 W/VALID GATHERER

wl_oil_panhandle_bal 4 columns

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

Record layout for wl_oil_panhandle_bal — 4 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 lost_compl_2_8_flag text 3 'Y' where the well was complying with the Panhandle order under guideline 2 or the computer-set 8 and lost it, because the lease's average gas-oil ratio over twelve months went past 5000:1.
4 lost_compl_2_8_date date 4-11 Date that compliance was lost.

wl_oil_panhandle_prod 4 columns

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

Record layout for wl_oil_panhandle_prod — 4 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 casinghead_gas_amount integer measured in MCF 3-7 Casinghead gas overage (positive) or underage (negative) accumulated this cycle. Zero means the well produced little or no casinghead gas.
4 casinghead_gas_percent numeric measured in percent 8-12 This well's share of the lease's casinghead gas for the cycle, to five decimal places: its daily casinghead gas from the effective W-10 over the sum of every producing well's on the lease.

wl_oil_prev_allowable 20 columns

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

Record layout for wl_oil_prev_allowable — 20 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 cycle_yyyymm key integer The reporting cycle this row belongs to, as one YYYYMM integer, carried down from the reporting-cycle segment above it on the tape.
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 prev_effective_date date 3-10 Date the superseded allowable took effect.
5 prev_issue_date date 11-18 Date the superseded allowable was issued.
6 work_potential numeric measured in bbl/d 19-22 The working potential behind that earlier allowable, in barrels per calendar day.
7 allow_amount integer measured in bbl/d 24-26 The earlier daily oil allowable in barrels, excluding any transfer.
8 gas_limit integer measured in MCF/d 27-30 The earlier casinghead gas limit. Whether it is MCF per day or per month depends on the field the well is in.
9 gas_oil_ratio integer measured in cf/bbl 31-33 The gas-oil ratio in cubic feet per barrel behind that allowable.
10 prev_remarks text 34-63 Thirty characters of free-form or computer-generated remark, as printed on the supplement the operator was mailed.
11 allowable_code text 64-65 Proration status behind the earlier allowable: 00 none, 01 prorated, 03 not producing but eligible, 06 marginal, 07 discovery, 08 exempt.
12 allow_limited_code text 66 Why that allowable was limited: 1 insufficient production history, 2 potential, 3 excessive GOR, 4 water produced, 5 excessive water-oil ratio (East Texas).
13 type_well text 67-68 The well's category at the time, from appendix A.
14 monthly_allowable integer measured in bbl 69-72 The monthly oil allowable that was assigned.
15 csh_monthly_limit integer measured in MCF 73-77 The monthly casinghead gas limit that was assigned.
16 code_14b2 text 78 The 14(b)(2) extension in force then: 0 none, 1 granted, 4 denied.
17 etex_pro_marg text 79 Type of casing-leak allowable transferred, East Texas only: P prorated, M marginal.
18 etex_oil_trns smallint measured in bbl/d 80-81 Barrels of casing-leak oil allowable received from another East Texas well.
19 etex_gas_trns smallint measured in MCF/d 82-83 Casing-leak gas allowable received from another East Texas well.
20 allocation_flag text 84 'Y' where the well fed the field's allocation formula at the time. Declared in the copybook and unexplained in the notes.

wl_oil_prev_type 3 columns

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

Record layout for wl_oil_prev_type — 3 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 prev_well_type text 3-4 A category the well has previously belonged to, from appendix A. The August 2026 tape carries no 11 records at all, so this table is empty; it is exported anyway, because the month RRC writes them again is not a month this page should quietly drop a table.

wl_oil_remark 6 columns

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

Record layout for wl_oil_remark — 6 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 remark_key smallint 3-5 RRC's own remark number. Remarks are stored in ascending order by it, and a remark long enough to wrap occupies several rows in order. e.g. 1
4 remark_date date 6-13 When the remark was generated, either by hand or automatically as a side effect of another update. e.g. 2026-06-22
5 remark_text text 14-79 Sixty-six characters of free text from the district or proration office. Order by seq to read a wrapped remark whole; the tape does not mark where one remark ends and the next begins. e.g. PER D.O. THE W10 FILED ON 6-9-25 SHOWS WELL #2 WAS PRODUCING
6 print_on_ledger_flag text 80 'Y' where the remark is printed on the ledger the operator receives. The file also writes '0' where the question does not apply.

wl_oil_report_cycle 48 columns

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

Record layout for wl_oil_report_cycle — 48 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own. e.g. 772524
2 cycle_yyyymm key integer 3-8 The reporting cycle, as one YYYYMM integer, and half the primary key. Twenty-six cycles per well and 25.7 on average: the August 2026 tape runs 2024-07 to 2026-08 and holds nothing older. e.g. 202606
3 acres numeric measured in acres 9-12 Acres productive of hydrocarbons assigned to the well for allowable purposes, as the operator filed them on Form P-15. Zero where the field's formula does not use acreage; 3,899,112 of the 7,543,198 cycles carry a positive number. e.g. 80.00
4 acre_feet integer measured in acre-ft 13-15 Acre-feet assigned to the well: acres times sand thickness, filed on Form P-15.
5 net_acre_feet integer measured in acre-ft 16-18 Acres times the portion of the sand determined to be productive.
6 bhp integer measured in psi 19-21 Bottom-hole pressure in PSI, measured or calculated and filed on Form W-2. Some allocation formulas use it directly.
7 working_potential numeric measured in bbl/d 22-25 The potential actually used to calculate this cycle's allowable, in barrels per calendar day to one decimal place. It comes from a W-2 or W-10 test and may be adjusted up or down to reflect what the well really produces -- which is what makes it 'working'. e.g. 113.2
8 tolerance_acres_flag text 26 'Y' where tolerance acres were added to the productive acreage.
9 effective_date date 27-34 Date this allowable took effect.
10 issue_date date 35-42 Date this allowable was issued.
11 allowable_amount integer measured in bbl/d 43-45 The well's DAILY oil allowable in barrels, before any transfer and before the field's production factor. Positive on 3,161,682 of the 7,543,198 cycles; zero is a real zero, not a blank. e.g. 113
12 gas_limit integer measured in MCF/d 46-49 Casinghead gas the well may produce per day, in MCF. Exceeding it is what curtails an oil well's oil. e.g. 16000
13 gas_oil_ratio integer measured in cf/bbl 50-52 Gas-oil ratio in cubic feet per barrel, used to test that limit. e.g. 2588
14 cycle_remark text 53-82 Thirty characters of remark printed on the operator's supplement when the cycle's allowable is a recalculation. Null where the copybook's zeros mean 'no remark'.
15 original_oil_in_place integer measured in bbl 83-86 Barrels determined to have been in the reservoir at discovery, set at a productive-acreage hearing: acres x thickness x porosity x (1 - water saturation) / formation value factor.
16 allowable_code text 87-88 Proration status for the cycle: 01 prorated allowable (4,355,056 cycles), 00 no allowable (3,163,707), 06 marginal, 08 exempt, 07 discovery, 03 not producing but eligible. e.g. 01
17 allow_limited_code text 89 Why the allowable is held below what the well is eligible for: 1 insufficient production history, 2 the well's potential, 3 excessive gas-oil ratio, 4 the water it produces, 5 excessive water-oil ratio (East Texas only).
18 type_well text 90-91 The well's category this cycle, from appendix A: PR producing (4,287,697 cycles), SH shut-in (2,150,468), IN injection, NP no production reported, WS water supply, PP partial plug, OB observation, LP LPG storage, and the rest. e.g. PR
19 sand_thickness smallint measured in ft 92-94 Thickness of the producing zone in feet, where the allowable uses it.
20 co_reg_depth_code smallint 95 County-regular depth band, which sets the allowable instead of the true depth: 1 is 0-2,000 ft, 2 is 2,001-4,000, 3 is 4,001-6,000, 4 is 6,001-8,000, 5 is 8,001 and deeper. 0 is not a band.
21 net_gor_code text 96 Whether the well runs on a net gas-oil-ratio rule and which kind: 0 not on the rule, 1 on it with a special ratio, 2 with a maximum gas limit, 3 with no daily limit.
22 net_gor integer measured in cf/bbl 97-99 The ratio or amount the net gas-oil-ratio rule allows.
23 special_allow_code smallint 100 Whether a special allowable is assigned, and of what kind: 0 none, 1 subject to the production factor and not to be changed, 2 exempt from it and not to be changed, 3 top allowable prorated, 4 top allowable exempt. Special allowables usually go to nearly depleted or marginal wells.
24 special_allow_amt integer measured in bbl/d 101-103 The special allowable itself, in barrels per day. Wells in 'Z' allocation fields carry their top allowable here.
25 code_14b2 text 104 The well's 14(b)(2) extension this cycle: 0 none granted, 1 in effect (prints as EXC 14B), 4 denied (14B DENY), 5 denied because of an H-15 violation.
26 date_14b2_yyyymm integer 105-110 Month the 14(b)(2) extension expires, as one YYYYMM integer.
27 water_production integer measured in bbl 111-113 Barrels of water produced with the oil during the W-2 or W-10 test.
28 frozen_potential integer measured in bbl/d 114-116 Yates-field potential held fixed for allowable purposes.
29 producing_method text 117 How the well was produced this cycle, as filed on the W-10: P pumping (3,715,440 cycles), G gas lift, F flowing, V vacuum, S steam injection, H secondary heat injection, B swabbing, C carbon dioxide, O other. Null on 2,565,285 cycles -- a well that is not producing -- and '0' on 281,288 more. e.g. G
30 other_prod_method text 118-137 Twenty characters spelling out the method where producing_method is 'O'. Null where the copybook's zeros mean unset.
31 monthly_allowable integer measured in bbl 138-141 The cycle's cumulative oil allowable in barrels -- the daily allowable times the days in the month, which is the figure the schedule prints. e.g. 3390
32 lowest_perforation integer measured in ft 142-144 Depth of the deepest perforation in the casing, in feet.
33 w10_exc_to_test_flag text 146 The well's exception to periodic testing: 0 regular testing required, 1 no W-10 required, 2 no commingle test required (metered), 3 execute survey only, 4 partial commingle lease, 5 LACT with regular testing, 6 LACT exempt from commingle testing, 7 one month's delay allowed.
34 test_date date 147-154 Date of the most recent test on file -- an annual survey, a Form W-2, or a W-10 retest. e.g. 2026-02-26
35 retest_flag text 155 'Y' where that test date came from a W-10 retest.
36 potential_12hr integer measured in bbl 156-158 Twelve-hour potential, for Yates-field wells, which test for twelve hours rather than the usual twenty-four.
37 bonus_code text 159 Whether the well receives a bonus allowable: 0 none, 1 gas bonus, 2 oil bonus, 3 oil injection allowable bonus.
38 bonus_amount smallint measured in bbl/d 160-162 Barrels added to the allowable as a bonus.
39 eb_flag text 163 'Y' where the allowable is to be cut back because of the well's production history.
40 allow_pote_gor_chg_flag text 164 What changed this cycle and may have moved the allowable: 0 nothing, 1 new allowable, 2 new potential, 3 new GOR, 4 GOR and potential, 5 GOR and allowable, 6 potential and allowable, 7 all three.
41 csh_monthly_limit integer measured in MCF 165-169 Most casinghead gas the well may be assigned for the month, in MCF.
42 eb_change_month_flag smallint 170 How many months running the allowable has been cut by the EB routine: 0 none, 1 first month, 2 second, 3 third.
43 well_top integer measured in bbl/d 171-174 The maximum oil allowable that can be assigned to a well in this field.
44 panhandle_comp_code text 175 Which guideline a Panhandle well used to show compliance with the field rules: 1 top of perforations at or below +250 ft, 2 average GOR under 5000:1 over twelve months, 3 an isolated 50-foot interval test, 4 a structurally anomalous area, 5 perforations below the gas wells within a mile, 6 under 20 MCF a day on the last test, 7 service well, 8 computer-set GOR under 5000:1, 9 a 14(b)(2) well, A computer-set version of 6, B shut-in, C excessive production, D hearing held, E sealed by Commission action, F lease shut in to make up casinghead production, N plugged well still on the ledger. '0' means no presumption of compliance has been established.
45 panhandle_sub_code text 176 Sub-code for a Panhandle well on compliance code 6 or A: P producing within the guideline, S shut in for a period after overproducing it.
46 h15_violation_flag text 177 'Y' where the well has failed its H-15 fluid-level test or is delinquent in filing one.
47 allocation_flag text 178 'Y' where the well feeds the field's allocation formula. The copybook declares it with a default of 'N'; the manual's notes never explain it.
48 stack_lat_parentage text 179 Stacked-lateral role: P parent well, C child well. Only the parent of a stacked lateral carries an allowable, and only the parent's lease has to file a PR, although the laterals may sit on several leases.

wl_oil_sb126 6 columns

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

Record layout for wl_oil_sb126 — 6 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 cert_flag text 3 Whether the well is certified for the Senate Bill 126 two-year inactive tax credit: A automatically, M manually, '0' not certified.
4 cert_effective_yyyymm integer 4-9 Month from which the well is certified to receive the tax credit, as one YYYYMM integer.
5 cert_letter_date date 10-17 Date RRC wrote to the operator saying the credit can be taken for this well's production.
6 turnaround_letter_date date 18-25 Date RRC wrote to say the credit COULD be taken if the operator asks for certification -- the invitation rather than the grant.

wl_oil_sealed 7 columns

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

Record layout for wl_oil_sealed — 7 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 sealed_effective_yyyymm integer 3-8 Month the seal order took effect, as one YYYYMM integer. e.g. 198909
4 sealed_reason text 9-10 Why the well was sealed: 01 delinquent production report, 02 discrepancies on it, 03 casinghead gas reported with no oil, 04 condensate with no gas well gas, 05 liquid overproduction, 06 gas overproduction, 07 delinquent forms, 08 condensate produced does not match condensate gathered, 09 delinquent H-10, 10 delinquent H-5, 11 failure to prove authority, 12 operator violations, 13 rule violations, 99 sealed before the database conversion and the reason is not known. '00' means no reason is recorded, which is what all seven rows of the August 2026 oil tape carry. e.g. 00
5 sealed_issue_date date 11-18 Date RRC issued the seal order.
6 sealed_issued_by text 19-20 Which part of RRC sealed the well: PC production, PA proration, FO field operations, CA commingle audit, LE legal enforcement.
7 seal_removed_date date 21-28 Date the seal was removed. Null while the well is still sealed.

wl_oil_transfer 7 columns

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

Record layout for wl_oil_transfer — 7 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
3 transfer_from_to text 3 Which way the allowable moves: 'T' this well is sending to the wells listed beside it, 'F' it is receiving from them. Both wells in a transfer carry a row pointing at the other. e.g. T
4 max_can_recv smallint measured in bbl/d 4-7 The most this well may receive per day by transfer, over and above its own allowable.
5 oil_total_actual smallint measured in bbl/d 8-11 Total oil allowable actually transferred, in barrels per day. e.g. 20
6 gas_total_actual smallint measured in MCF/d 12-15 Total casinghead gas limit actually transferred.
7 actual_transfer_type text 16 Type of allowable transferred: P prorated, M marginal. e.g. 0

wl_oil_transfer_well 7 columns

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

Record layout for wl_oil_transfer_well — 7 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 transfer_seq key integer Which transfer row of this well the counterparty hangs under -- its `seq`.
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 well_transferred_key join integer 3-10 The other well in the transfer, by its root key on this tape. e.g. 82717
5 transfer_type text 11 What kind of allowable moved: 1 prorated, 2 exempt (called marginal in District 6E). e.g. 2
6 oil_transfer smallint measured in bbl/d 12-15 Barrels of oil moved per day. Not included in the regular allowable on either side. e.g. 4
7 gas_transfer smallint measured in MCF/d 16-19 Casinghead gas moved per day. e.g. 10

wl_oil_uic 8 columns

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

Record layout for wl_oil_uic — 8 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 cycle_yyyymm key integer The reporting cycle this row belongs to, as one YYYYMM integer, carried down from the reporting-cycle segment above it on the tape.
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 uic_control_no join integer 3-11 The UIC permit's control number -- the primary key of RRC's UIC database. Every one of the 1,170,867 oil rows resolves to a control number in the UIC Database dataset, across 45,177 distinct permits. e.g. 64064
5 h10_required_flag text 12 Which annual survey this well owes: H or Y the H-10, Z the H-10H, W or N the W-10. e.g. H
6 uic_status_date date 13-20 Documented by the manual as not currently used, and null in every row.
7 prev_h10_status text 21 Documented by the manual as not currently used, and null in every row.
8 roll_segment_flag text 22 'Y' where this UIC segment rolls forward with the next month when RRC advances its database a cycle. e.g. Y

wl_oil_w10 21 columns

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

Record layout for wl_oil_w10 — 21 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own. e.g. 415
2 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique. e.g. 1
3 cycle_yyyymm integer 3-6 The cycle the test takes effect in, as one YYYYMM integer. The tape stores it as the historical ledger's 9927-based key (9530 means 2026-02, 397 months after January 1993); the loader decodes it, and day_key beside it is the raw second half of that key. e.g. 202602
4 day_key smallint 7-8 The second half of RRC's W-10 key, which orders several tests filed in one month. The manual documents it as 99 minus the effective day; on the file it reads as the effective day plus one, so it is stored raw rather than decoded to a day.
5 effective_date date 9-16 Date the test was made effective for allowable purposes. e.g. 2026-02-01
6 type_status_flag text 17 What kind of W-10 this is: I initial test, R retest, S survey, W Form W-2 filed, D dummy row used to initialise RRC's database. Surveys are the bulk of the file -- 528,953 of 609,334 -- and retests 71,816. e.g. S
7 producing_method text 18 How the well was being produced when tested: F flowing, P pumping, G gas lift, V vacuum, S steam injection, H secondary heat injection, B swabbing, C carbon dioxide, O other (spelled out in other_prod_method). e.g. P
8 other_prod_method text 19-38 The producing method written in, where producing_method is 'O'. The copybook's unset value is twenty literal zeros rather than blanks; those are stored as null.
9 test_date date 39-46 Date the well was actually tested, as filed on the W-10. e.g. 2025-11-10
10 daily_oil_bbl numeric measured in bbl/d 47-50 Daily oil potential on the test, in barrels to one decimal place. The tape writes six digits with the point implied (PIC S9(5)V9), so 30 barrels arrives as '000300'; the loader restores the point. e.g. 0.1
11 daily_water_bbl integer measured in bbl/d 51-53 Barrels of water produced on the test day. e.g. 10
12 daily_gas_mcf integer measured in MCF/d 54-57 Gas produced during the potential test, in MCF per day.
13 gas_oil_ratio integer measured in cf/bbl 58-60 Gas-oil ratio in cubic feet per barrel. RRC curtails an oil well whose gas production runs past its daily gas limit, and this is the number that decides it.
14 siwh_pressure integer measured in psi 61-64 Shut-in wellhead pressure in PSI. The manual says the item is not currently used, and it is zero in almost every row.
15 siwh_yyyymm integer 65-70 Month the well was shut in, as one YYYYMM integer. Null while the well is producing; 55,760 of the 609,334 tests carry one.
16 type_well text 77-78 What a non-producing well is being used for, from the manual's appendix A: SH shut-in, PP partial plug, SM shut-in side of a multiple completion, WS water supply, IN injection, OB observation and the rest. '00' on 422,931 rows means the well is producing and the code does not apply. e.g. 00
17 issue_date date 85-92 Date RRC processed the W-10. e.g. 2026-01-15
18 survey_counted_flag text 93 'Y' where the test counted as the annual survey. The copybook declares it; the manual's notes never explain it, and the file writes '0' where it is unset.
19 filed_edi_flag text 94 'Y' where the operator filed the test electronically rather than on paper.
20 allocation_flag text 95 'Y' where the test feeds the field's allocation formula. Declared in the copybook and never explained in the manual's notes.
21 survey_2yr_counted_flag text 96 'Y' where the test counted as the two-year survey. Undocumented beyond the copybook, like survey_counted_flag.

wl_oil_w10_prev 19 columns

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

Record layout for wl_oil_w10_prev — 19 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 wlroot_key key join integer The eight-digit RRC internal well id the row hangs off (WL-ROOT-KEY). Carried down from the 01 well root above it on the tape: the child segments have no key of their own.
2 w10_seq key integer Which W-10 of the same well this hangs under -- the `seq` of the row in the W-10 table it shares an effective date with.
3 seq key integer Ordinal of this segment under its parent, counting from 1 in tape order. EZRRC's, not RRC's -- the segment carries no search field, and the manual calls several of these non-recurring where the tape does not agree, so the ordinal is what keeps the primary key unique.
4 cycle_yyyymm integer 3-6 The cycle the test takes effect in, as one YYYYMM integer. The tape stores it as the historical ledger's 9927-based key (9530 means 2026-02, 397 months after January 1993); the loader decodes it, and day_key beside it is the raw second half of that key.
5 day_key smallint 7-8 The second half of RRC's W-10 key, which orders several tests filed in one month. The manual documents it as 99 minus the effective day; on the file it reads as the effective day plus one, so it is stored raw rather than decoded to a day.
6 effective_date date 9-16 Date the test was made effective for allowable purposes.
7 type_status_flag text 17 What kind of W-10 this is: I initial test, R retest, S survey, W Form W-2 filed, D dummy row used to initialise RRC's database. Surveys are the bulk of the file -- 528,953 of 609,334 -- and retests 71,816.
8 producing_method text 18 How the well was being produced when tested: F flowing, P pumping, G gas lift, V vacuum, S steam injection, H secondary heat injection, B swabbing, C carbon dioxide, O other (spelled out in other_prod_method).
9 other_prod_method text 19-38 The producing method written in, where producing_method is 'O'. The copybook's unset value is twenty literal zeros rather than blanks; those are stored as null.
10 test_date date 39-46 Date the well was actually tested, as filed on the W-10.
11 daily_oil_bbl numeric measured in bbl/d 47-50 Daily oil potential on the test, in barrels to one decimal place. The tape writes six digits with the point implied (PIC S9(5)V9), so 30 barrels arrives as '000300'; the loader restores the point.
12 daily_water_bbl integer measured in bbl/d 51-53 Barrels of water produced on the test day.
13 daily_gas_mcf integer measured in MCF/d 54-57 Gas produced during the potential test, in MCF per day.
14 gas_oil_ratio integer measured in cf/bbl 58-60 Gas-oil ratio in cubic feet per barrel. RRC curtails an oil well whose gas production runs past its daily gas limit, and this is the number that decides it.
15 siwh_pressure integer measured in psi 61-64 Shut-in wellhead pressure in PSI. The manual says the item is not currently used, and it is zero in almost every row.
16 siwh_yyyymm integer 65-70 Month the well was shut in, as one YYYYMM integer. Null while the well is producing; 55,760 of the 609,334 tests carry one.
17 type_well text 77-78 What a non-producing well is being used for, from the manual's appendix A: SH shut-in, PP partial plug, SM shut-in side of a multiple completion, WS water supply, IN injection, OB observation and the rest. '00' on 422,931 rows means the well is producing and the code does not apply.
18 issue_date date 85-92 Date RRC processed the W-10.
19 filed_edi_flag text 93 'Y' where the operator filed the test electronically rather than on paper.

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.

RRC district (internal number) — 14 codes and their meanings
CodeMeans
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

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.

Statewide Oil Well Database joins to PDQ Well Completion Directory on Wlroot key = Well root number — one row here matches one row there.

is PDQ's well completion

The one join that gets an API number out of this tape. PDQ's well_root_no is the same RRC internal well id as WL-ROOT-KEY, zero-padded to eight characters, and it resolves for 293,022 of the 293,069 oil wells -- one PDQ completion each, never more. The row it lands on carries api_county_code and api_unique_no, the county name, and PDQ's own district/lease/well key. 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-oil-well-database.wlroot_key = pdq-well-completion.well_root_no

Statewide Oil Well Database joins to PDQ Regulatory Lease Directory on District number and Lease number — many rows here share a single row there.

is on the lease

From the well to its lease's directory entry, which is where the operator number, the operator name, the field number and the lease name are -- none of which is on this tape. 293,049 of the 293,069 wells resolve, one lease each. Restrict the PDQ side to oil_gas_code = 'O'. Without it the join returns 311,664 rows instead of 293,049: a gas well ID and an oil lease number can be the same digits in the same district, and 18,615 of them are. Both sides write RRC's INTERNAL district number, so no translation is needed here -- unlike the W-10 and G-10 status files, which print the designation. 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-oil-well-database.district_no = pdq-regulatory-lease-directory.district_no AND statewide-oil-well-database.lease_no = pdq-regulatory-lease-directory.lease_no

Statewide Oil Well Database joins to PDQ Lease Summary (master) on District number and Lease number — rows can match many rows in both directions.

produced on the lease

From the well to what its lease actually produced, so a tested potential and an allowable can be read beside the volumes. 293,045 of the 293,069 wells match, but the summary carries one row per lease per operator and field, so the 293,045 wells produce 1,068,412 pairs -- aggregate, or pick the operator you mean. Restrict the PDQ side to oil_gas_code = 'O'; gas wells carry their RRC ID in the same lease_no column. 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-oil-well-database.district_no = pdq-lease-summary.district_no AND statewide-oil-well-database.lease_no = pdq-lease-summary.lease_no

Statewide Oil Well Database joins to Certificate of Authorization P-4 (Oil and Gas) on District number = District number and Lease number = Lease rrcid — many rows here share a single row 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

Statewide Oil Well Database joins to Statewide Production Data — Oil on District number = District and Lease number = Lease number — many rows here share a single row there.

is the lease whose scheduled wells are

From the lease that files the P-1 to the WELLS on it: the well database is one row per well on the oil proration schedule, 293,069 of them over 84,071 leases, with the well and unit numbers, the 14(b)(2) and shut-in flags and the removal history that nothing on the production tape carries. 2,402 of 5,000 sampled leases match. The gap is not a key problem: the well database holds the leases currently ON the schedule -- on_off_sched_ind is 'N' on all 293,069 rows -- and the production database holds every lease that has reported inside 26 months, which is a much larger set. This is the ONE family outside PDQ whose district means the same thing as this tape's: WLA001K writes the internal number too, so the districts line up and nothing has to be translated. 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-production-data-oil.district = statewide-oil-well-database.district_no AND statewide-production-data-oil.lease_no = statewide-oil-well-database.lease_no

Statewide Oil Well Database joins to Historical Ledger — Statewide Oil on District number = District and Lease number = Lease number — many rows here share a single row there.

is the lease whose scheduled wells are

From the lease that filed the P-1 to the WELLS on it: the well database is one row per well on the oil proration schedule, with the well and unit numbers, the 14(b)(2) and shut-in flags and the removal history that nothing on this tape carries. 79,301 of the 158,566 leases match. The gap is not a key problem: the well database holds the leases currently ON the schedule, and this tape holds every lease that reported in any month since 1993 -- half of them have since left. WLA001K writes the same internal district number this tape does, which is why the district is carried here and cannot be carried into the proration ledger or the W-10. 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.

historical-ledger-oil.district = statewide-oil-well-database.district_no AND historical-ledger-oil.lease_no = statewide-oil-well-database.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.wl_oil_well

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.