PDQ Lease Summary (master)
Queryable CSV
One row per lease with the first and last production cycle it ever reported.
Get the data
Heads up on Original: the Commission does not publish this table on its own. It publishes Production Data Query Dump, which this was parsed out of — so Original gets you that whole file, not just this table. Every other format is this table alone.
Free. You will be asked to confirm an email address before the files are built — that is the only gate, and it is there so we can tell you when a large export is ready.
What this is
One of the sixteen delimited tables inside the monthly Production Data Query dump. RRC publishes the dump as a single archive; EZRRC publishes each table inside it separately so you can take the one you need instead of a 3.6 GB zip.
1.1 million leases with the earliest and latest production cycle recorded for each. It is the index you want before touching the 76 million row cycle table.
What you can do with it
Find leases that started producing in a given month, leases that have stopped, and the productive life of any lease — without scanning the full production history.
Gotchas
The min and max cycles are stored as integers in YYYYMM form, so 202601 is January 2026 and arithmetic on them is not date arithmetic.
A lease number is only unique with the oil/gas code and the district in it. Oil lease 027587 in District 08 and gas lease 027587 in District 08 are different leases; so is oil lease 027587 in District 09.
Record layout
12 columns.
pdq_og_summary_master_large
12 columns
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
oil_gas_code
key
join
|
text | — | Whether the lease is carried on the oil schedule or the gas schedule. | Oil or gas schedule |
| 2 |
district_no
key
join
|
text | — | RRC's INTERNAL district number, 01 to 14 plus 20 for statewide. This is not the district name the industry uses: internal 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. Join to the district directory rather than reading it as a label. | RRC district (internal number) |
| 3 |
lease_no
key
join
|
text | — | RRC lease number. Unique only within a district and a schedule, so a lease key is district + oil/gas code + lease number. | — |
| 4 |
operator_no
join
|
text | — | The operator's six-digit RRC P-5 organization number. Join to the P-5 Organization dataset for the company's name, address and P-5 status. | — |
| 5 |
field_no
join
|
text | — | The eight-digit RRC field number. The field's name is not in most files; join to the field directory to get it. | — |
| 6 |
cycle_year_month_min
|
bigint | — | Cycle year month min | — |
| 7 |
cycle_year_month_max
|
bigint | — | Cycle year month max | — |
| 8 |
district_name
|
text | — | RRC district as the industry writes it, e.g. 7B, 8A, 6E. | — |
| 9 |
lease_name
|
text | — | Lease name as filed. | — |
| 10 |
operator_name
|
text | — | Operator name as carried in this file. Names drift between filings — join on the operator number, never on the name. | — |
| 11 |
field_name
|
text | — | Field name. | — |
| 12 |
ingested_at
|
timestamptz | — | When the upstream pipeline last wrote this row. Not an RRC field — it is EZRRC's provenance stamp, and it is what the freshness badge is measured against. | — |
Code lookups used here
Every coded column in this dataset resolves to a real lookup table, so
a well code of G can be read as what it actually means.
RRC district (internal number) 14 values
Read by district_no
RRC's internal sequential district numbering, 01 to 14 plus 20 for statewide. The production data, the UIC database and the high-cost gas certifications all use this. Internal 07 is District 6E, 08 is 7B, 09 is 7C, 10 is District 08, 11 is 8A, 13 is 09 and 14 is District 10. There is no internal 12.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio (internal 01) Internal district number 01, which RRC prints as District 01 and administers from San Antonio. |
02 |
District 02 — San Antonio (internal 02) Internal district number 02, which RRC prints as District 02 and administers from San Antonio. |
03 |
District 03 — Houston (internal 03) Internal district number 03, which RRC prints as District 03 and administers from Houston. |
04 |
District 04 — Corpus Christi (internal 04) Internal district number 04, which RRC prints as District 04 and administers from Corpus Christi. |
05 |
District 05 — Kilgore (internal 05) Internal district number 05, which RRC prints as District 05 and administers from Kilgore. |
06 |
District 06 — Kilgore (internal 06) Internal district number 06, which RRC prints as District 06 and administers from Kilgore. |
07 |
District 6E — Kilgore (internal 07) Internal district number 07, which RRC prints as District 6E and administers from Kilgore. |
08 |
District 7B — Abilene (internal 08) Internal district number 08, which RRC prints as District 7B and administers from Abilene. |
09 |
District 7C — San Angelo (internal 09) Internal district number 09, which RRC prints as District 7C and administers from San Angelo. |
10 |
District 08 — Midland (internal 10) Internal district number 10, which RRC prints as District 08 and administers from Midland. |
11 |
District 8A — Midland (internal 11) Internal district number 11, which RRC prints as District 8A and administers from Midland. |
13 |
District 09 — Wichita Falls (internal 13) Internal district number 13, which RRC prints as District 09 and administers from Wichita Falls. |
14 |
District 10 — Pampa (internal 14) Internal district number 14, which RRC prints as District 10 and administers from Pampa. |
20 |
District 20 — State Wide (internal 20) Internal district number 20, which RRC prints as District 20 and administers from State Wide. |
Source: Generated from texas.pdq_gp_district.district_no
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.
| Code | Means |
|---|---|
O |
Oil Carried on the oil proration schedule; lease numbers are oil lease numbers. |
G |
Gas Carried on the gas proration schedule; lease numbers are gas well IDs. |
Source: PDQ Dump user manual; values confirmed as the complete distinct set in texas.pdq_og_lease_cycle.oil_gas_code
What this joins to
The Railroad Commission never states these keys anywhere in the files. They are the reason the data is hard to use, so here they are with the exact columns on both sides.
PDQ Lease Summary (master) joins to PDQ Lease Production by Cycle on Oil gas code and District number and Lease number — one row here matches many rows there.
summarises the monthly production
The summary gives a lease's first and last production cycle; the cycle table gives every month in between. Read the summary first if you are about to scan 76 million rows.
pdq-lease-summary.oil_gas_code = pdq-lease-cycle.oil_gas_code AND pdq-lease-summary.district_no = pdq-lease-cycle.district_no AND pdq-lease-summary.lease_no = pdq-lease-cycle.lease_no
PDQ Lease Summary (master) joins to Gas Well Status (26 Month G-10) on District name = District and Lease number = RRC ID — one row here matches many rows there.
has G-10 tests
From a gas well's production summary — PDQ carries gas wells as leases, keyed on the same six-digit ID — to its G-10 tests. Restrict the PDQ side to oil_gas_code = 'G'; 0 of 20,000 sampled oil leases collide. 1,389 of 5,000 sampled gas leases have a test on the current tape. 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.
pdq-lease-summary.district_name = gas-well-status-g10.district AND pdq-lease-summary.lease_no = gas-well-status-g10.rrc_id
PDQ Lease Summary (master) joins to Oil Well Status (26 Month W-10) on District name = District and Lease number = Lease number — one row here matches many rows there.
has W-10 tests for its wells
From the lease's production summary to the W-10 tests of the wells on it, on printed district and lease number. Restrict the PDQ side to oil_gas_code = 'O'; 83 of 20,000 sampled gas leases share digits with an oil lease. 2,002 of 5,000 sampled oil leases have a well tested in the current window. 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.
pdq-lease-summary.district_name = oil-well-status-w10.district AND pdq-lease-summary.lease_no = oil-well-status-w10.lease_no
PDQ Lease Summary (master) joins to Statewide Production Data — Oil on District number = District and Lease number = Lease number — many rows here share a single row 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
PDQ Lease Summary (master) joins to Oil Ledger — Leases on District name = District and Lease number = Lease number — one row here matches one row there.
has a production summary
From the lease record to the first and last cycles PDQ holds production for, which is the cheapest way to tell a dead lease from a live one. 3,754 of 5,000 sampled leases match as the columns stand; the missing quarter is the four lettered districts. 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.
oil-ledger-leases.district = pdq-lease-summary.district_name AND oil-ledger-leases.lease_no = pdq-lease-summary.lease_no
PDQ Lease Summary (master) joins to Statewide Production Data — Gas on District number = District and Lease number = Gas RRC ID — many rows here share a single row there.
has a production summary
The first and last cycles PDQ holds gas production for. 4,775 of 5,000 sampled wells match, and more than one row can come back: the summary is keyed on the well AND its operator and field, so a well that changed hands has a row for each. Restrict to oil_gas_code = 'G'. 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-gas.district = pdq-lease-summary.district_no AND statewide-production-data-gas.gas_rrc_id = pdq-lease-summary.lease_no
PDQ Lease Summary (master) joins to Historical Ledger — Statewide Oil on District number = District and Lease number = Lease number — many rows here share a single row 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. 158,539 of 158,566 match. 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 -- and over 378 months most of these leases have. 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.
historical-ledger-oil.district = pdq-lease-summary.district_no AND historical-ledger-oil.lease_no = pdq-lease-summary.lease_no
PDQ Lease Summary (master) joins to Historical Ledger — Statewide Gas on District number = District and Lease number = Gas RRC ID — many rows here share a single row there.
has a production summary
The first and last cycles PDQ holds gas production for. 219,355 of 219,384 wells match, and more than one row can come back: the summary is keyed on the well AND its operator and field, so a well that changed hands over thirty-one years has a row for each. Restrict to oil_gas_code = 'G'. 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-gas.district = pdq-lease-summary.district_no AND historical-ledger-gas.gas_rrc_id = pdq-lease-summary.lease_no
PDQ Lease Summary (master) joins to Statewide Oil Well Database 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
PDQ Lease Summary (master) joins to Statewide Gas Well Database on District number = District number and Lease number = Gas RRC ID — rows can match many rows in both directions.
produced as the lease
The gas tape's route to reported production: PDQ keys a gas well's summary on the same statewide RRC ID. 138,870 of the 138,901 wells match, over 510,890 pairs, because the summary repeats a lease per operator and field. Restrict the PDQ side to oil_gas_code = 'G'. 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-gas-well-database.district_no = pdq-lease-summary.district_no AND statewide-gas-well-database.gas_rrc_id = pdq-lease-summary.lease_no
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- CSV Comma-separated text.
- RRC publishes
- Updated once a month (Last Saturday each month, with the PDQ dump.)
- RRC download link
- GoAnywhere MFT
- Record layout manual
- Our table
texas.pdq_og_summary_master_large
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.