Statewide Production Data — Oil
Queryable EBCDIC
The live P-1 world: every oil lease's allowable, production, dispositions and remarks, 26 months deep.
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
PDA001, the oil half: PDF100, a 102-byte EBCDIC tape of the Commission's live production database. It is the system the P-1 is filed into and the allowable is issued out of, and it is decoded here into thirteen tables -- 176,035 oil LEASES, each with the last 26 reporting CYCLES, and hanging off every cycle the production report, the dispositions by code, the commingle permits, the superseded allowables, the previous filings and the clerks' remarks.
This is the part of Texas production data that PDQ does not carry. PDQ has the long history of volumes and nothing else; this has the regulatory detail -- what the lease was ALLOWED to produce, where the oil and the casinghead gas actually went, which commingle permit it reported under, and why a figure was corrected. Where the two overlap they agree: in cycle 202506, oil_production_bbl is identical to PDQ's lease_oil_prod_vol on 73,188 of the 73,271 leases matched.
It is also ahead of PDQ. The August 2026 tape carries allowables through 202608 and P-1s through 202606, while PDQ's rows for 202606, 202607 and 202608 exist with every volume zero.
What you can do with it
Ask what a lease was allowed to produce and what it did -- by district, by month, for the whole state -- and then ask where the oil went: 592,889 truck dispositions and 467,793 pipeline ones sit in the disposition table beside the production. Find the leases running an overproduction balance, the 35,738 that report under a commingle permit, and the 18,007 with a remark on file explaining something the numbers do not.
Gotchas
THE DISTRICT IS THE INTERNAL NUMBER, 01-14, not the designation RRC prints: 08 here is District 7B, 10 is District 08, 11 is 8A, 13 is 09, 14 is District 10, 07 is 6E (oil only) and 12 (8B) is not used. It matches PDQ's district_no exactly, which is why the PDQ joins below need no translation -- and it does NOT match the proration ledgers, the W-10 or the G-10, where '08' means District 08. A join on the column as it stands against any of those matches, and the matches are wrong.
A download from this page is texas.pd_oil_lease, one row per lease with its balances. The twelve child tables are documented in the record layout below -- that is the layout of the file -- and the schema marks which table the download carries.
The window rolls. Every cycle RRC drops the oldest month and adds a new one, so this is 202407-202608 today and something else next month. For a series that does not move under you, use the PDQ lease cycle or the Historical Ledger.
Allowables run two cycles ahead of production: 202607 and 202608 have an allowable and no P-1 at all, because the reports have not been filed yet. A month-over-month production chart that includes them shows a cliff that is not real.
Several documented items are dead on this tape and the column descriptions say so: casinghead_gas_lift_mcf is zero in all 1,718,826 production rows, all nine discrepancy-removal flags are 'N' in all 937,719 rows of pd_oil_discrepancy, and pd_oil_commingle_prev_report is EMPTY because the August 2026 tape carries no 12 records. The table is published anyway so that the month RRC starts writing them, they appear rather than being silently absent.
Both roots carry an undocumented four-byte packed value where the 2005 manual has FILLER. It is kept as undoc_packed_32 and nobody knows what it counts.
Record layout
135 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
pd_oil_lease
8 columns
This is the table you get when you download or query Statewide Production Data — Oil.
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
district
key
join
|
text | 4-5 | PD-OIL-DISTRICT |
RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. e.g. 11 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | 6-11 | PD-OIL-LEASE-NBR |
The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. e.g. 3137 | — |
| 3 |
oil_code
|
text | 3 | PD-OIL-CODE |
The tape's own record marker, 'O' for an oil lease, on all 176,035 rows. The gas tape writes 'G' in the same byte. It is here because it is part of RRC's key, not because it varies. e.g. O | — |
| 4 |
movable_balance
|
integer measured in bbl | 12-16 | PD-MOVABLE-BALANCE |
Barrels in storage on the lease that were produced within the allowable and so may legally be moved off it. Non-zero on 75,700 leases; negative on 4,591, which is oil produced beyond the allowable. Current as of the newest cycle on the tape. e.g. 7132 | — |
| 5 |
beginning_oil_status
|
integer measured in bbl | 17-21 | PD-BEGINNING-OIL-STATUS |
Oil overproduction, in barrels, carried into the oldest cycle the tape still holds -- the balance that rolled off with the months that are no longer here. Non-zero on 4,779 leases. e.g. 0 | — |
| 6 |
beginning_csghd_status
|
integer measured in MCF | 22-26 | PD-BEGINNING-CSGHD-STATUS |
The same for casinghead gas, in MCF: the overproduction the lease brought into the window. Non-zero on 3,787 leases and reaching 801,877,681 on one of them. | — |
| 7 |
oldest_eom_balance
|
integer measured in bbl | 27-31 | PD-OIL-OLDEST-EOM-BALANCE |
Oil in stock at the end of the oldest month on the tape, in barrels. Non-zero on 70,491 leases. e.g. 7258 | — |
| 8 |
undoc_packed_32
|
integer | 32-35 | — | An undocumented four-byte packed value at byte 32, where the 2005 manual has FILLER. Non-zero on about 0.5% of leases. Upstream kept it rather than discarding it, and nobody knows what it counts -- do not read it as a quantity. e.g. 5101900 | — |
pd_oil_commingle
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
cmg_seq
key
join
|
smallint | — | — | File order of the commingle permit inside the cycle, 1 to 14. It is what ties this permit to its production, dispositions, oldest balance and remarks -- those tables carry the same number. | — |
| 5 |
commingle_district
join
|
text | 3-4 | PD-OIL-COMMINGLE-DISTRICT |
District of the commingle permit, written the same internal way as the lease's own district. It is usually but not always the lease's. | RRC district (internal number) |
| 6 |
commingle_no
join
|
integer | 5-9 | PD-OIL-COMMINGLE-NUMBER |
The commingle permit number. 9,120 distinct permits appear across the window. 9999 is not a permit: it marks a lease required to file a special commingled report, on 11,781 rows. | — |
| 7 |
ending_balance
|
integer measured in bbl | 10-14 | PD-OIL-COMMINGLE-END-BALANCE |
Oil in stock under the permit at the end of the month, in barrels. Non-zero on 711,535 of the 855,540 rows. | — |
pd_oil_commingle_disposition
6 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
cmg_seq
key
join
|
smallint | — | — | The commingle permit this row belongs to, as its file order within the cycle. It is the join back to pd_oil_commingle, which carries the permit number itself. | — |
| 5 |
disposition_code
key
|
smallint | 3-4 | PD-OIL-OLCO-DISPOSITION-CODE |
Where the commingled oil went, on the same list as an ordinary oil disposition: 0 pipeline, 1 truck, 2 tank car or barge, 3 tank cleaning net, 4 circulating, 5 lost, 6 tank-cleaning BS&W, 7 other, 8 skim, 9 scrubber, 10 stock adjustment, 11 commingle stock adjustment. Codes 0 to 11 all appear. | — |
| 6 |
amount
|
integer | 5-9 | PD-OIL-OLCO-DISPOSITION-AMOUNT |
Barrels disposed of under the permit. Stock adjustments may be negative; the smallest here is -707 barrels. | — |
pd_oil_commingle_oldest_balance
5 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
cmg_seq
key
join
|
smallint | — | — | The commingle permit this row belongs to, as its file order within the cycle. It is the join back to pd_oil_commingle, which carries the permit number itself. | — |
| 5 |
oldest_eom_balance
|
integer measured in bbl | 3-7 | PD-CM-OLDEST-EOM-BAL |
Oil in stock under the permit at the end of the OLDEST month the tape carries, in barrels. RRC writes the segment only against that cycle: all 34,155 rows are cycle 202407, and 28,377 of them are non-zero. | — |
pd_oil_commingle_prev_report
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
cmg_seq
key
join
|
smallint | — | — | The commingle permit this row belongs to, as its file order within the cycle. It is the join back to pd_oil_commingle, which carries the permit number itself. | — |
| 5 |
seq
key
|
smallint | — | — | File order of the previous commingled report inside the cycle. | — |
| 6 |
prev_posting_yyyymm
|
integer | 3-8 | PD-OIL-COMM-PREV-POSTING-DATE |
The month the superseded report was posted, as a whole number. | — |
| 7 |
prev_posting_date
|
date | 3-10 | PD-OIL-COMM-PREV-POSTING-DATE |
The full posting date of the superseded report, where the tape gave a day. Null where it did not. | — |
| 8 |
prev_batch_no
|
text | 11-13 | PD-OIL-COMM-PREV-BATCH-NUMBER |
RRC's batch number for the superseded report. | — |
| 9 |
prev_item_no
|
integer | 14-17 | PD-OIL-COMM-PREV-ITEM-NUMBER |
Item number of the superseded report inside that batch. | — |
| 10 |
changed_flag
|
text | 18 | PD-OIL-COMM-PREV-CHANGED-FLAG |
'C' where the figures changed. The tape leaves it blank on every row of this file, so the column is NULL throughout: it does not tell you whether a refiling changed anything. | — |
| 11 |
filed_by_edi
|
text | 19 | PD-OIL-COMM-PREV-EDI-FLAG |
'Y' where the superseded report had been filed electronically. | — |
pd_oil_commingle_production
21 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
cmg_seq
key
join
|
smallint | — | — | The commingle permit this row belongs to, as its file order within the cycle. It is the join back to pd_oil_commingle, which carries the permit number itself. | — |
| 5 |
production_bbl
|
integer measured in bbl | 3-7 | PD-OIL-COMM-PRODUCTION-AMOUNT |
Barrels reported under the commingle permit for the month. Non-zero on 680,508 of the 855,540 rows -- one row per permit per cycle, exactly matching pd_oil_commingle. | — |
| 6 |
removed_cm_inactv
|
text | 8 | PD-OLCO-REMOVED-CM-INACTV-DISC |
'Y' where a production clerk removed production under an inactive permit from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 7 |
removed_not_spec
|
text | 9 | PD-OLCO-REMOVED-NOT-SPEC-DISC |
'Y' where a production clerk removed a permit not specified on the report from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 8 |
removed_out_of_balance
|
text | 10 | PD-OLCO-REMOVED-OUT-OF-BALANCE |
Whether an out-of-balance discrepancy was cleared. The tape writes '0' rather than the documented 'N' or 'Y' in every one of the 855,540 rows, so nothing is recorded here either way. | — |
| 9 |
filed_by_edi
|
text | 17 | PD-OIL-CM-FILED-BY-EDI-FLG |
'Y' where the commingled report arrived electronically: 853,475 of 855,540. The copybook prints this flag at byte 37, which is where the corrected-report flag actually is; on the file it is at 17, and the loader follows the file. | — |
| 10 |
batch_no
|
text | 18-20 | PD-OIL-COMM-BATCH-NUMBER |
RRC's internal batch number for the bundle of reports this one was keyed in with. Useful for tracing a filing inside the Commission, not for anything about the lease. | — |
| 11 |
item_no
|
integer | 21-24 | PD-OIL-COMM-ITEM-NUMBER |
The report's item number inside that batch, 1 to 9999. RRC internal. | — |
| 12 |
posting_yyyymm
|
integer | 25-30 | PD-OIL-COMM-POSTING-DATE |
The month the report was posted, as a whole number. The tape usually gives the month with a day of 00, which is why the month is kept here beside a date that can be null. | — |
| 13 |
posting_date
|
date | 25-32 | PD-OIL-COMM-POSTING-DATE |
The full posting date, where the tape gave a day: 553,725 of the 855,540 rows. Null on the rest, which carry a day of 00 -- the month is still in posting_yyyymm. | — |
| 14 |
removed_lse_sev
|
text | 33 | PD-OLCO-REMOVED-LSE-SEV-DISC |
'Y' where a production clerk removed a lease severance discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 15 |
removed_other
|
text | 34 | PD-OLCO-REMOVED-OTHER-DISC |
'Y' where a production clerk removed an 'other' discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 16 |
removed_lost_oil
|
text | 35 | PD-OLCO-REMOVED-LOST-OIL-DISC |
'Y' where a production clerk removed a lost-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 17 |
removed_circ_oil
|
text | 36 | PD-OLCO-REMOVED-CIRC-OIL-DISC |
'Y' where a production clerk removed a circulating-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 18 |
corrected_report_flag
|
text | 37 | PD-OIL-CM-CORRECTED-RPT-FLAG |
'Y' where the commingled report is a correction: 181,771 of the 855,540 rows. | — |
| 19 |
removed_code_6
|
text | 38 | PD-OLCO-REMOVED-CODE-6-DISC |
'Y' where a production clerk removed a code-6 discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 20 |
removed_r3
|
text | 39 | PD-OLCO-REMOVED-R-3-DISC |
'Y' where a production clerk removed a disagreement with the R-3 plant report from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 21 |
removed_net_oil
|
text | 40 | PD-OLCO-REMOVED-NET-OIL-DISC |
'Y' where a production clerk removed a net-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
pd_oil_cycle
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. e.g. 11 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. e.g. 3137 | — |
| 3 |
cycle_yyyymm
key
join
|
integer | 3-6 | PD-OIL-RPT-CYCLE-KEY |
The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. e.g. 202606 | — |
| 4 |
daily_oil_prorated_allow
|
integer measured in bbl/d | 7-11 | PD-DAILY-OIL-PRORATED-ALLOW |
Barrels a day the lease's PRORATED wells may produce, before the statewide production factor is applied. Non-zero on 1,335,827 of the 2,531,702 cycles. e.g. 24207 | — |
| 5 |
daily_oil_exempt_allow
|
integer measured in bbl/d | 12-16 | PD-DAILY-OIL-EXEMPT-ALLOW |
Barrels a day for the lease's wells that are exempt from proration -- the marginal wells, which is most of Texas. Non-zero on 179,109 cycles. | — |
| 6 |
daily_csh_prorated_allow
|
integer measured in MCF/d | 17-21 | PD-DAILY-CSH-PRORATED-ALLOW |
MCF a day of casinghead gas the prorated wells may produce. The tape writes all nines where no limit applies and that is NULL here, on 12,806 cycles. | — |
| 7 |
daily_csh_exempt_allow
|
integer measured in MCF/d | 22-26 | PD-DAILY-CSH-EXEMPT-ALLOW |
MCF a day of casinghead gas for the exempt wells. All-nines is NULL, on 6,680 cycles. | — |
| 8 |
oil_allowable_cycle_bbls
|
integer measured in bbl | 27-31 | PD-OIL-ALLOWABLE-CYCLE-BBLS |
The whole month's oil allowable in barrels -- the daily figures multiplied out over the days in the cycle. Non-zero on 1,509,481 cycles and reaching 6,968,862 barrels. e.g. 726210 | — |
| 9 |
csh_limit_cycle_mcf
|
integer measured in MCF | 32-36 | PD-CSH-LIMIT-CYCLE-MCF |
The month's casinghead gas limit in MCF: the daily limit times the days in the cycle, which holds on 154,543 of the 155,644 cycles big enough to check. All-nines is NULL, on 19,377 cycles. The median limit is 5,766 MCF, but 155,651 cycles carry one above ten million, and on 108,300 of those the daily figure behind it is an exact multiple of 99,999 -- a placeholder multiplied out, not a cap any lease could reach. e.g. (null: no limit) | — |
| 10 |
allow_effect_date
|
date | 37-44 | PD-OIL-ALLOWABLE-EFFECT-DATE |
The day the allowable took effect, normally the first of the cycle. Null on 40,039 cycles where the tape gave no date. e.g. 2026-06-01 | — |
| 11 |
allow_issue_date
|
date | 45-52 | PD-OIL-ALLOWABLE-ISSUE-DATE |
The day the Commission issued the allowable -- usually a few days before it takes effect, and it is the date to use when you want to know when a lease was told. Null on 1,682 cycles. e.g. 2026-07-31 | — |
| 12 |
oil_ending_balance
|
integer measured in bbl | 53-57 | PD-OIL-ENDING-BALANCE |
Oil in stock on the lease at the end of the month, in barrels. Non-zero on 1,861,223 cycles. e.g. 7132 | — |
| 13 |
present_oil_status
|
integer measured in bbl | 58-62 | PD-PRESENT-OIL-STATUS |
Cumulative oil overproduction in barrels at the end of this cycle, counting only months whose P-1 was received. Non-zero on 114,973 cycles. | — |
| 14 |
present_csghd_status
|
integer measured in MCF | 63-67 | PD-PRESENT-CSGHD-STATUS |
Cumulative casinghead gas overproduction in MCF at the end of the cycle. Non-zero on 44,301. | — |
| 15 |
adjusted_oil_status
|
integer measured in bbl | 68-72 | PD-ADJUSTED-OIL-STATUS |
An adjustment applied to the overproduction balance, in barrels. Non-zero on 355 cycles of 2.5 million and never positive -- every one of them forgives overproduction rather than adding it. | — |
| 16 |
adjusted_csghd_status
|
integer measured in MCF | 73-77 | PD-ADJUSTED-CSGHD-STATUS |
The same adjustment for casinghead gas, in MCF. Non-zero on 278 cycles. | — |
pd_oil_discrepancy
12 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
removed_code_6
|
text | 3 | PD-O-REMOVED-CODE-6-DISCREP |
'Y' where a production clerk removed a code-6 (other disposition) discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 5 |
removed_r3
|
text | 4 | PD-O-REMOVED-R-3-DISCREP |
'Y' where a production clerk removed a disagreement with the R-3 plant report from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 6 |
removed_net_oil
|
text | 5 | PD-O-REMOVED-NET-OIL-DISCREP |
'Y' where a production clerk removed a net-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 7 |
removed_lse_sev
|
text | 6 | PD-O-REMOVED-LSE-SEV-DISCREP |
'Y' where a production clerk removed a lease severance discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 8 |
removed_other
|
text | 7 | PD-O-REMOVED-OTHER-DISCREP |
'Y' where a production clerk removed an 'other' discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 9 |
removed_lost_oil
|
text | 8 | PD-O-REMOVED-LOST-OIL-DISCREP |
'Y' where a production clerk removed a lost-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 10 |
removed_circ_oil
|
text | 9 | PD-O-REMOVED-CIRC-OIL-DISCREP |
'Y' where a production clerk removed a circulating-oil discrepancy from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 11 |
removed_prd_inact
|
text | 10 | PD-O-REMOVED-PRD-INACT-DISCREP |
'Y' where a production clerk removed production on an inactive lease from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
| 12 |
removed_file_comm
|
text | 11 | PD-O-REMOVED-FILE-COMM-DISCREP |
'Y' where a production clerk removed a failure to file the commingled report from RRC's discrepancy listing, 'N' where no action was taken. 'N' on every row of the August 2026 tape: the whole flag block is carried and none of it is set. | — |
pd_oil_disposition
6 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. e.g. 11 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. e.g. 3137 | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. e.g. 202606 | — |
| 4 |
disposition_type
key
|
text | — | — | Which of the two disposition segments the row came from: 'oil' is record 05 and the amount is barrels (1,263,504 rows); 'csghd' is record 06 and the amount is MCF of casinghead gas (1,666,430). The code lists are different, so read the code with this column. e.g. oil | — |
| 5 |
disposition_code
key
|
smallint | 3-4 | PD-OIL-DISPOSITION-CODE |
Where the oil or the gas went. Oil (05): 0 pipeline, 1 truck, 2 tank car or barge, 3 tank cleaning net, 4 circulating, 5 lost, 6 tank-cleaning BS&W, 7 other, 8 skim, 9 scrubber, 10 stock adjustment, 11 commingle stock adjustment, 99 reported with no code. Casinghead (06): 1 lease fuel, 2 transmission line, 3 processing plant, 4 vented or flared, 5 gas lift, 6 repressure, 7 carbon black, 8 underground storage, 99 no code. e.g. 0 | — |
| 6 |
amount
|
integer | 5-9 | PD-OIL-DISPOSITION-AMOUNT |
Barrels for an oil disposition, MCF for a casinghead one. Stock adjustments (code 10 and 11) may be negative; the smallest on the tape is -5,496 barrels. e.g. 648140 | — |
pd_oil_prev_allowable
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
seq
key
|
smallint | — | — | File order of the superseded allowable inside the cycle, 1 upwards and as high as 34. 140,933 lease-months carry more than one, which is the point of the segment: it is the allowable history inside a single month. | — |
| 5 |
allow_daily_bbls_hist
|
integer measured in bbl/d | 3-7 | PD-OIL-ALLOW-DAILY-BBLS-HIST |
The daily oil allowable in barrels that was in force before this change. Non-zero on 441,193 of the 748,054 rows. | — |
| 6 |
gas_limit_daily_mcf_hist
|
integer measured in MCF/d | 8-12 | PD-GAS-LIMIT-DAILY-MCF-HIST |
The daily casinghead gas limit in MCF that went with it. All-nines means no limit and is NULL, on 6,662 rows. | — |
| 7 |
allow_eff_date_hist
|
date | 13-20 | PD-OIL-ALLOW-EFF-DATE-HIST |
When that superseded allowable took effect. Null on 82,323 rows where the tape gave no date. | — |
| 8 |
allow_issue_date_hist
|
date | 21-28 | PD-OIL-ALLOW-ISSUE-DATE-HIST |
When the Commission issued it. Null on 38,364 rows. | — |
| 9 |
allow_cycle_bbls_hist
|
integer measured in bbl | 29-33 | PD-OIL-ALLOW-CYCLE-BBLS-HIST |
The whole-cycle allowable in barrels under the superseded figure. | — |
| 10 |
gas_limit_cycle_mcf_hist
|
integer measured in MCF | 34-38 | PD-GAS-LIMIT-CYCLE-MCF-HIST |
The whole-cycle casinghead limit in MCF under it. All-nines is NULL. | — |
pd_oil_prev_report
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. | — |
| 4 |
seq
key
|
smallint | — | — | File order of this previous report inside the cycle, 1 upwards. One lease-month reached 46 -- a P-1 refiled forty-six times. | — |
| 5 |
prev_posting_yyyymm
|
integer | 3-8 | PD-OIL-PREV-POSTING-DATE |
The month the superseded report was posted, as a whole number. | — |
| 6 |
prev_posting_date
|
date | 3-10 | PD-OIL-PREV-POSTING-DATE |
The full posting date of the superseded report, where the tape gave a day. Null where it did not. | — |
| 7 |
prev_batch_no
|
text | 11-13 | PD-OIL-PREV-BATCH-NUMBER |
RRC's batch number for the superseded report. | — |
| 8 |
prev_item_no
|
integer | 14-17 | PD-OIL-PREV-ITEM-NUMBER |
Item number of the superseded report inside that batch. | — |
| 9 |
changed_flag
|
text | 18 | PD-OIL-PREV-CHANGED-FLAG |
'C' where the figures changed. The tape leaves it blank on every row of this file, so the column is NULL throughout: it does not tell you whether a refiling changed anything. | — |
| 10 |
filed_by_edi
|
text | 19 | PD-OIL-PREV-FILED-BY-EDI-FLAG |
'Y' where the superseded report had been filed electronically. | — |
pd_oil_production
12 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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. e.g. 11 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. e.g. 3137 | — |
| 3 |
cycle_yyyymm
key
join
|
integer | — | — | The reporting cycle this row belongs to, as a whole number: 202606 is June 2026. The tape carries 26 of them, 202407 through 202608, and drops the oldest each month. e.g. 202606 | — |
| 4 |
corrected_report_flag
|
text | 3 | PD-OIL-CORRECTED-REPORT-FLAG |
'Y' where this is a corrected P-1 rather than the original filing: 255,244 of the 1,718,826 reports. 'N' on the rest. e.g. N | — |
| 5 |
oil_production_bbl
|
integer measured in bbl | 7-11 | PD-OIL-PRODUCTION-AMOUNT |
Barrels of oil the operator reported on Form P-1 for the month. Non-zero on 1,289,784 reports. Measured against PDQ for cycle 202506: identical to lease_oil_prod_vol on 73,188 of 73,271 leases. e.g. 648014 | — |
| 6 |
casinghead_gas_mcf
|
integer measured in MCF | 12-16 | PD-OIL-CASINGHEAD-GAS-AMOUNT |
MCF of casinghead gas produced with the oil. Non-zero on 877,475 reports; equals PDQ's lease_csgd_prod_vol on 73,175 of 73,271 leases sampled in cycle 202506. e.g. 3129591 | — |
| 7 |
casinghead_gas_lift_mcf
|
integer measured in MCF | 17-21 | PD-OIL-CASINGHEAD-GAS-LIFT |
Gas injected back into the lease for gas lift, in MCF. Zero in every one of the 1,718,826 rows of the August 2026 tape -- the item is on the P-1 and nobody's figure reaches this column. | — |
| 8 |
batch_no
|
text | 22-24 | PD-OIL-BATCH-NUMBER |
RRC's internal batch number for the bundle of reports this one was keyed in with. Useful for tracing a filing inside the Commission, not for anything about the lease. e.g. 870 | — |
| 9 |
item_no
|
integer | 25-28 | PD-OIL-ITEM-NUMBER |
The report's item number inside that batch, 1 to 9999. RRC internal. e.g. 335 | — |
| 10 |
posting_yyyymm
|
integer | 29-34 | PD-OIL-POSTING-DATE |
The month the report was posted, as a whole number. The tape usually gives the month with a day of 00, which is why the month is kept here beside a date that can be null. e.g. 202608 | — |
| 11 |
posting_date
|
date | 29-36 | PD-OIL-POSTING-DATE |
The full posting date, where the tape gave a day: 1,004,281 of the 1,718,826 rows. Null on the rest, which carry a day of 00 -- the month is still in posting_yyyymm. | — |
| 12 |
filed_by_edi
|
text | 37 | PD-OIL-FILED-BY-EDI-FLAG |
'Y' where the P-1 arrived electronically: 1,705,551 of 1,718,826 reports. Paper is down to 13,275. e.g. Y | — |
pd_oil_remark
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 |
district
key
join
|
text | — | — | RRC district as an INTERNAL district number, 01 to 14 -- not the designation the industry prints. The manual's own conversion table reads 07 = 6E (oil only), 08 = 7B, 09 = 7C, 10 = District 08, 11 = 8A, 12 = 8B (not used, and absent here), 13 = 09 and 14 = District 10. It is the same spelling PDQ writes in district_no, and it is NOT the spelling the proration ledgers, the W-10 or the G-10 use: on those, '08' means District 08, and here it means 7B. e.g. 10 | RRC district (internal number) |
| 2 |
lease_no
key
join
|
integer | — | — | The RRC oil lease number as a whole number, so PDQ's '02092' is 2092 here. Unique only inside a district: the 176,035 leases carry just 70,380 distinct numbers between them, so a query on the lease number alone returns other people's leases. e.g. 83 | — |
| 3 |
seq
key
|
integer | — | — | File order of the remark within the lease, across all three remark records. One lease carries 67 of them. e.g. 2 | — |
| 4 |
remark_type
|
text | — | — | Which record the remark came off: 'lease' is the 22 PDREMARK segment, which hangs off the lease itself (49,331 rows); 'disposition' is a 23 remark on a code-7 'other' oil disposition (1,539); 'commingle_disposition' is a 24 remark on a code-7 commingled disposition (793). 18,007 of the 176,035 leases carry any remark at all. e.g. lease | — |
| 5 |
cycle_yyyymm
join
|
integer | — | — | The cycle the remark is about. Filled only on the 2,332 disposition remarks; a lease remark is not tied to a month. | — |
| 6 |
cmg_seq
|
smallint | — | — | The commingle permit the remark is about, on the 793 commingle-disposition remarks and null everywhere else. | — |
| 7 |
disposition_code
|
smallint | — | — | The disposition the remark explains. It is 7 -- 'other' -- on every one of the 2,332 disposition remarks, because that is the code RRC requires an explanation for. | — |
| 8 |
remark_no
|
smallint | 3-5 | PD-REMARK-NUMBER |
RRC's remark number on a lease remark, 939 to 999 on this tape. Null on disposition remarks. e.g. 999 | — |
| 9 |
line_no
|
smallint | 6-7 | PD-REMARK-LINE-NO |
Line within the lease remark, 1 to 14: a long remark is several rows and only remark_no and line_no put them back in order. e.g. 2 | — |
| 10 |
remark_date
|
date | 3-10 | PD-OIL-DSP-RMK-DATE |
Date on a disposition remark, from 2024-09-10 to 2026-08-05. Null on lease remarks, which carry no date. The copybook lists this as MM DD CC YY at byte 3; the file writes CCYYMMDD and the loader follows the file. | — |
| 11 |
remark_text
|
text | 8-77 | PD-REMARK-TEXT |
The remark itself. A lease remark is 70 characters at byte 8 and a disposition remark 40 characters at byte 11, so the record layout below shows the lease remark's position: the text is the same column either way, but its bytes are not. These are RRC clerks' own notes -- 'OLD OPERATOR HAD BEEN FILING EVEN THOUGH...' -- and they are the only place on the tape where the reason for a number is written down. e.g. OPERATOR HAD REMOVED STOCK BACK IN 10/95. SPOKE WITH ENOCH DAWKINS | — |
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, commingle_district, district, district, district, district, district, district, district, district, district, district, district, district
RRC's internal sequential district numbering, 01 to 14 plus 20 for statewide. The production data, the UIC database and the high-cost gas certifications all use this. Internal 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. There is no internal 12.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio (internal 01) Internal district number 01, which RRC prints as District 01 and administers from San Antonio. |
02 |
District 02 — San Antonio (internal 02) Internal district number 02, which RRC prints as District 02 and administers from San Antonio. |
03 |
District 03 — Houston (internal 03) Internal district number 03, which RRC prints as District 03 and administers from Houston. |
04 |
District 04 — Corpus Christi (internal 04) Internal district number 04, which RRC prints as District 04 and administers from Corpus Christi. |
05 |
District 05 — Kilgore (internal 05) Internal district number 05, which RRC prints as District 05 and administers from Kilgore. |
06 |
District 06 — Kilgore (internal 06) Internal district number 06, which RRC prints as District 06 and administers from Kilgore. |
07 |
District 6E — Kilgore (internal 07) Internal district number 07, which RRC prints as District 6E and administers from Kilgore. |
08 |
District 7B — Abilene (internal 08) Internal district number 08, which RRC prints as District 7B and administers from Abilene. |
09 |
District 7C — San Angelo (internal 09) Internal district number 09, which RRC prints as District 7C and administers from San Angelo. |
10 |
District 08 — Midland (internal 10) Internal district number 10, which RRC prints as District 08 and administers from Midland. |
11 |
District 8A — Midland (internal 11) Internal district number 11, which RRC prints as District 8A and administers from Midland. |
13 |
District 09 — Wichita Falls (internal 13) Internal district number 13, which RRC prints as District 09 and administers from Wichita Falls. |
14 |
District 10 — Pampa (internal 14) Internal district number 14, which RRC prints as District 10 and administers from Pampa. |
20 |
District 20 — State Wide (internal 20) Internal district number 20, which RRC prints as District 20 and administers from State Wide. |
Source: Generated from texas.pdq_gp_district.district_no
What this joins to
The Railroad Commission never states these keys anywhere in the files. They are the reason the data is hard to use, so here they are with the exact columns on both sides.
Statewide Production Data — Oil joins to PDQ Regulatory Lease Directory on District = District number and Lease number = Lease number — one row here matches one row there.
is the regulatory lease
The route from a lease number to its NAME, its operator and its field -- none of which is anywhere on this tape. It is the first join most people need here, and the cleanest: 4,998 of 5,000 sampled leases match. Restrict PDQ to oil_gas_code = 'O'. 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 = pdq-regulatory-lease-directory.district_no AND statewide-production-data-oil.lease_no = pdq-regulatory-lease-directory.lease_no
Statewide Production Data — Oil joins to PDQ Lease Production by Cycle on District = District number and Lease number = Lease number — one row here matches many rows there.
produced, by month
The join that puts the regulatory record beside the published volumes: what the lease was allowed to produce, and what PDQ says it produced. 4,619 of 5,000 sampled leases match; the missing 381 are leases on the production database that PDQ has no cycle for at all, usually because they have filed nothing in the window. Where both sides carry a figure they agree: in cycle 202506 the P-1 oil volume here is identical to lease_oil_prod_vol on 73,188 of the 73,271 leases matched. PDQ is the one to use for a long series; this tape is the one that is current, because PDQ's rows for 202606 onwards exist with every volume zero. Restrict PDQ to oil_gas_code = 'O': 122 of 5,000 sampled leases collide with a gas well of the same number in the same district. 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 = pdq-lease-cycle.district_no AND statewide-production-data-oil.lease_no = pdq-lease-cycle.lease_no
Statewide Production Data — Oil joins to Statewide Oil Well Database on District = District number and Lease number = Lease number — one row here matches many rows 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 Production Data — Oil joins to PDQ Lease Summary (master) on District = District number and Lease number = Lease number — one row here matches many rows there.
has a production summary
From the lease to the first and last cycles PDQ holds production for, which is the cheapest way to tell a lease that stopped reporting from one that never did. 4,619 of 5,000 sampled leases match -- the same set the cycle join finds, because both tables are built from the same PDQ lease universe. Expect more than one row back. The summary is keyed on the lease AND its operator and field, so a lease that changed hands or produces from two fields has a row for each: 121,660 of PDQ's lease keys carry one row, 79,812 carry two and 61,043 three, and the tail runs further. Restrict to oil_gas_code = 'O'. 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 = pdq-lease-summary.district_no AND statewide-production-data-oil.lease_no = pdq-lease-summary.lease_no
Statewide Production Data — Oil joins to PDQ Well Completion Directory on District = District number and Lease number = Lease number — one row here matches many rows there.
is the lease whose completions are
The hop that gets a production lease an API number, which no part of PDA001 carries: PDQ's completions for the lease. 4,827 of 5,000 sampled leases match. It stops at the lease -- the tape has no well number to take it further. Restrict to oil_gas_code = 'O'. 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 = pdq-well-completion.district_no AND statewide-production-data-oil.lease_no = pdq-well-completion.lease_no
Statewide Production Data — Oil joins to Historical Ledger — Statewide Oil on District and Lease number — one row here matches one row there.
continues into the live production database
The other half of the same lease. This tape ends at cycle 202406 and PDA001 begins at 202407: they abut exactly, with no overlapping month and no gap, so the two together are an unbroken record from January 1993 to last month. 158,509 of the 158,566 leases here are in the live database; the 57 that are not have reported nothing inside its 26-month window. The handover is checkable. This tape's 202406 oil_ending_balance is pd_oil_lease.oldest_eom_balance on 95,630 of the 95,693 leases that reported that month -- the live database opens on the balance this one closes with. Both columns are the same types, so no cast is needed. It is the only join in this family that needs none.
historical-ledger-oil.district = statewide-production-data-oil.district AND historical-ledger-oil.lease_no = statewide-production-data-oil.lease_no
Statewide Production Data — Oil joins to Certificate of Authorization P-4 (Oil and Gas) on District = District number and Lease number = Lease rrcid — 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
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.pd_oil_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.