P-18 Skim Oil / Condensate Report
Queryable JSON
Every barrel of oil skimmed off produced water, and the lease it was credited back to.
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
The P-18 report: hydrocarbon liquids recovered at saltwater disposal and skim-oil systems, which never appear as lease production because they were skimmed downstream. 45,825 filings across the seventeen monthly releases published so far.
The heart of it is the allocation table -- 3,419,471 rows saying which lease or drilling permit each barrel of skimmed liquid was credited back to, with the water that lease sent in. Nothing else RRC publishes carries that: 16,102,302 barrels of skim oil traced to a lease, against 8.02 billion barrels of Texas produced water received and 1.90 billion more from out of state. It is as much a produced-water dataset as a skim-oil one, and it is the finest-grained public record of where Texas water goes.
Unusually for RRC, it is published as JSON on the Commission's website rather than through the MFT portal: one file per month, named p18dataload_ plus the month and year (p18dataload_june-2026.json), seventeen of them from February 2025 to June 2026. Every one is mirrored here byte for byte alongside the parsed tables.
What you can do with it
Filter the filings by operator, system, district, county, reporting period or purpose, and export them with all five child tables: the lease allocations, the disposal wells behind the system, the gatherers who took the liquid, the out-of-state water and the associated systems it was injected through.
Account for liquids that lease production data does not capture, find which systems handle a county's produced water, or take one lease's row out of the allocation table and see how much oil came back to it and how much water it sent away.
Gotchas
Skim oil is RECOVERED volume, not produced volume. Adding it to lease production double counts.
A month's file is the filings RRC APPROVED that month, not the filings FOR it. p18dataload_june-2026.json carries 1,672 May 2026 reports, 510 April ones and a tail reaching back years, so report_month and period_yyyymm are different columns and only period_yyyymm answers "what happened in May". Reporting periods span 2016-02 to 2027-03 over 71 distinct months against seventeen publication months.
A Corrected filing does not replace the one it corrects. Both are in the file and both are here, and the business key does not tell them apart -- June 2026 holds two Corrected filings for the same system, operator and period -- so the row key is the filing's position in its month's file. Filter on purpose_file_type if you want one kind.
The system serial number LOOKS like a gas plant id and is not one. P-18 systems and R-3 gas plants are separate registries that share the district-serial format, and 16,886 filings collide with an unrelated plant: 01-0557 is the JEZISEK disposal system here and the WEST JOURDANTON COMPRESSOR on the R-3 tape. Do not join them.
distance_from_nearest_town is text, not a number, and deliberately: 10,194 filings write the unit into the value ('3 MILES', '2 miles'), and on 64 more the town and the distance are TRANSPOSED at source, so nearest_town holds '7' and the distance holds 'SARAOSA'. That is the filer's entry on RRC's form; it is stored as filed rather than guessed at.
Two column names are RRC's and are misleading. p18_consolidated.lease_no holds a lease NAME -- not one of its 3,620 non-null values is numeric. hydrocarbons_skimmed_bbl comes from a key RRC spells 'TotaLiquidHydrocarbonsSkimmed', missing an l, as does 'AssociatedSytemSerialNumber'; both are reproduced rather than corrected so the mapping still matches the file.
county is a NAME in the filer's own case ('REEVES' and 'Reeves' both appear) and not a code. Uppercased, 161 of the 233 distinct spellings match a Texas county; the rest are misspellings and out-of-state names. Treat it as a label.
If you parse the original JSON yourself: 14 of the 17 monthly files are not valid UTF-8. Each carries a handful of Windows-1252 bytes in 100-odd MB -- 0x92 apostrophes in a survey call, 0xA0 wrapping a lease number -- so json.load on a text handle dies on all but three. Read the bytes and decode with a fallback.
Record layout
100 columns.
p18_report
55 columns
This is the table you get when you download or query P-18 Skim Oil / Condensate Report.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. e.g. 202606 | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. e.g. 2889 | — |
| 3 |
source_file
|
text | — | The JSON file this filing was read out of, e.g. 'p18dataload_june-2026.json'. Kept because the month comes from the file's name and nothing inside it says which month it is. e.g. p18dataload_june-2026.json | — |
| 4 |
district_code
join
|
text | — | The district designation split out of `system_serial_number` by EZRRC -- 01-06, 6E, 7B, 7C, 08, 8A, 09, 10. NULL on 6,265 of the 45,825 filings, where the system is identified by a bare facility key ('793082') instead of a district-serial pair. District 08 is 19,537 filings, which is the Permian doing what the Permian does. e.g. 02 | RRC district (printed designation) |
| 5 |
serial_no
join
|
integer | — | The serial split out of `system_serial_number` by EZRRC, as a whole number. Null wherever `district_code` is. e.g. 876 | — |
| 6 |
period_yyyymm
join
|
integer | — | The month the filing REPORTS ON, as one YYYYMM integer, and the column to take a date range on. Periods run 2016-02 to 2027-03 over 71 distinct months -- far wider than the seventeen publication months, because a month's file is the filings approved that month and a late or corrected P-18 can reach back years. The handful past today are the filer's keying errors. e.g. 202605 | — |
| 7 |
operator_no
join
|
numeric | OperatorNumber |
The P-5 organization number of the system's operator. Every one of the 45,825 filings carries one and every one resolves in the operator directory, over 569 distinct organizations -- the cleanest operator column in this family. Stored as NUMERIC because the JSON ships it as a string; no row has a fractional part, so cast it to integer to join. e.g. 665596 | — |
| 8 |
operator_name
|
text | OperatorName |
The operator's name as filed. The operator directory's own spelling, reached through operator_no, is the one to trust: this is the filer's. e.g. PILOT WATER SOLUTIONS SWD LLC | — |
| 9 |
address_line1
|
text | AddressLine1 |
First line of the operator's mailing address, as filed. It is where the OPERATOR gets its post, not where the system is: the P-18 carries no location for the facility beyond the county, the nearest town and a survey call. | — |
| 10 |
address_line2
|
text | AddressLine2 |
Second line of the operator's mailing address, as filed. It is where the OPERATOR gets its post, not where the system is: the P-18 carries no location for the facility beyond the county, the nearest town and a survey call. | — |
| 11 |
city
|
text | City |
City of the operator's mailing address, as filed. It is where the OPERATOR gets its post, not where the system is: the P-18 carries no location for the facility beyond the county, the nearest town and a survey call. e.g. Houston | — |
| 12 |
state
|
text | State |
State of the operator's mailing address. TX on 43,465 filings, then OK (1,104), LA (522), CO (346), CA (190) and NM (100). It is where the OPERATOR gets its post, not where the system is: every system on this form is in Texas. e.g. TX | — |
| 13 |
zip
|
text | Zip |
ZIP of the operator's mailing address, as filed. It is where the OPERATOR gets its post, not where the system is: the P-18 carries no location for the facility beyond the county, the nearest town and a survey call. | — |
| 14 |
system_serial_number
join
|
text | SystemSerialNumber |
RRC's identifier for the skim-oil or saltwater disposal SYSTEM, usually written district-serial ('08-0501') and on 6,265 filings as a bare facility key ('793082'). 3,207 distinct systems. It looks exactly like a gas plant id and IS NOT ONE -- the P-18 systems and the R-3 plants are separate registries that happen to share a format, and 16,886 filings collide with an unrelated plant. '01-0557' is the JEZISEK disposal system here and the WEST JOURDANTON COMPRESSOR on the R-3 tape. Never join the two. e.g. 02-0876 | — |
| 15 |
facility_name
|
text | FacilityName |
The system's name as filed -- 'HENNING', 'Railway Recycle Facility'. Filled on all 45,825 filings. e.g. HENNING | — |
| 16 |
nearest_town
|
text | NearestTown |
The nearest town, as filed. TRANSPOSED WITH THE DISTANCE on 64 filings, where this column holds a number ('7') and `distance_from_nearest_town` holds the town ('SARAOSA'). That is the filer's entry on RRC's form, not a parsing fault, and it is stored as filed rather than swapped back -- a repair here would be a guess about which of the two the filer meant. e.g. GILLETTE | — |
| 17 |
distance_from_nearest_town
|
text | DistanceFromNearestTown |
How far the system is from that town, as filed, and TEXT rather than a number on purpose: 10,194 of the 45,825 filings write the unit into the value ('3 MILES', '2 miles') and 64 hold a town name because the filer transposed the two columns. Parse it yourself if you need a number; a loader that coerced it would have thrown away a fifth of the column. e.g. 6.6 | — |
| 18 |
direction_from_nearest_town
|
text | DirectionFromNearestTown |
Compass direction from that town, as filed -- 'SE', 'NE'. e.g. E | — |
| 19 |
county
|
text | County |
The county the system is in, by NAME and in the filer's own case: both 'REEVES' (3,479 filings) and 'Reeves' (986) appear. Not a code -- there is no county number on the P-18. Uppercasing and joining to the county directory resolves 161 of the 233 distinct spellings; the rest are misspellings and out-of-state names, so this is a label rather than a key. e.g. KARNES | — |
| 20 |
abstract_number
|
text | AbstractNumber |
Abstract number of the survey call describing where the system sits, as filed. Filled on 31,788 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 21 |
township
|
text | Township |
Township of the survey call describing where the system sits, as filed. Filled on 6,072 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 22 |
survey_section
|
text | Section |
Section (the JSON calls it 'Section') of the survey call describing where the system sits, as filed. Filled on 30,407 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 23 |
survey
|
text | Survey |
Survey name of the survey call describing where the system sits, as filed. Filled on 37,873 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 24 |
league
|
text | League |
League of the survey call describing where the system sits, as filed. Filled on 542 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 25 |
tract
|
text | Tract |
Tract of the survey call describing where the system sits, as filed. Filled on 817 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 26 |
block
|
text | Block |
Block of the survey call describing where the system sits, as filed. Filled on 26,175 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 27 |
porcion
|
text | Porcion |
Porcion of the survey call describing where the system sits, as filed. Filled on 189 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 28 |
labor
|
text | Labor |
Labor of the survey call describing where the system sits, as filed. Filled on 506 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 29 |
lot
|
text | Lot |
Lot of the survey call describing where the system sits, as filed. Filled on 277 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 30 |
share
|
text | Share |
Share of the survey call describing where the system sits, as filed. Filled on 161 of the 45,825 filings; the rest of the call is in the columns beside it. Free text from the filer, not a coded location, and there are no coordinates anywhere on the P-18. | — |
| 31 |
purpose_file_type
|
text | P18PurposeFileType |
Why the filing was made: Monthly (42,897), Corrected (1,372), Final (804), Initial (752). A Corrected filing does not replace the one it corrects -- both are in the file, both are here, and the business key does not tell them apart, which is why the row key is the filing's position in its month. e.g. Monthly | — |
| 32 |
has_disposal_wells
|
boolean | IsFilingAssociatedWithDisposalWells |
True where the system has disposal wells behind it, 45,112 of the 45,825 filings. The wells themselves are in texas.p18_well. | — |
| 33 |
disposal_method
|
text | DisposalMethod |
How the water is disposed of. NULL on all 45,825 filings: the key exists in RRC's schema and no filing has ever carried it. | — |
| 34 |
disposal_method_other
|
text | DisposalMethodOther |
Free text where the method is 'other'. Filled on 434 filings, which is odd given that `disposal_method` itself is empty everywhere -- the form writes the two independently. | — |
| 35 |
disposal_method_permit_no
|
text | DisposalMethodPermitNumber |
The permit number behind the disposal method, as filed. Present on 712 filings. | — |
| 36 |
oil_lease_gas_wells
|
numeric | NumberOfOilLeaseGasWells |
The count of oil-lease and gas wells the system serves. Non-zero on 35,574 filings. A count, not a volume. | — |
| 37 |
water_received_producing_bbl
|
numeric measured in bbl | WaterReceivedFromProducingProperties |
Texas produced water received from PRODUCING leases, in barrels. | — |
| 38 |
water_received_non_producing_bbl
|
numeric measured in bbl | WaterReceivedFromNonProducingProperties |
Texas produced water received from NON-PRODUCING leases, in barrels. | — |
| 39 |
texas_water_received_bbl
|
numeric measured in bbl | TotalBarrelsOfTexasWaterReceived |
Total Texas produced water received in the reporting month, in barrels. 8.02 billion barrels across the seventeen months published -- this is the column that makes the P-18 a water dataset as much as a skim-oil one. e.g. 539094.0000 | — |
| 40 |
has_out_of_state_water
|
boolean | IsFilingAssociatedWithOutOfStateWater |
True on 4,550 of the 45,825 filings. The state-by-state detail is in texas.p18_out_of_state_water. | — |
| 41 |
out_of_state_water_skimmed_bbl
|
numeric measured in bbl | OutOfStateWaterSkimmed |
Liquid hydrocarbon skimmed off out-of-state water, in barrels. Reported separately because it is NOT allocable back to a Texas lease. | — |
| 42 |
out_of_state_water_received_bbl
|
numeric measured in bbl | OutOfStateWaterReceived |
Out-of-state water received in the reporting month, in barrels. 1.90 billion barrels across the seventeen months, nearly all of it from New Mexico. | — |
| 43 |
hydrocarbons_skimmed_bbl
|
numeric measured in bbl | TotaLiquidHydrocarbonsSkimmed |
Total liquid hydrocarbon skimmed off the water this month, in barrels -- the headline figure of the whole form, 12,923,529 barrels across the seventeen months. RRC's JSON key for it is 'TotaLiquidHydrocarbonsSkimmed', missing an l; the loader reproduces the typo rather than correcting it, because a mapping that silently fixes a name stops matching the file. This is RECOVERED volume, not produced volume: adding it to lease production double counts. e.g. 5104.0000 | — |
| 44 |
tolerance_not_required_bbl
|
numeric measured in bbl | ToleranceOfLiquidHydrocarbonsNotRequired |
Skimmed volume within the tolerance that need not be allocated back, in barrels. | — |
| 45 |
excess_skim_to_allocate_bbl
|
numeric measured in bbl | ExcessSkimLiquidHydrocarbonsToBeAllocated |
Skimmed volume above the tolerance, which must be credited back to the leases the water came from, in barrels. texas.p18_lha is where it goes. | — |
| 46 |
slugs_received_bbl
|
numeric measured in bbl | LiquidHydrocarbonsReceivedAsIdentifiableSlugs |
Liquid received as slugs rather than skimmed off water, in barrels. | — |
| 47 |
excess_skim_not_credited_bbl
|
numeric measured in bbl | ExcessSkimLiquidHydrocarbonsNotCredited |
Excess skim that was NOT credited back to a lease, in barrels. | — |
| 48 |
storage_beginning_bbl
|
numeric measured in bbl | LiquidHydrocarbonsInStorageBeginning |
Skim oil in storage at the start of the month, in barrels. | — |
| 49 |
skimmed_not_allocated_bbl
|
numeric measured in bbl | TotalLiquidHydrocarbonsSkimmedAndNotAllocated |
Skimmed volume held back rather than allocated this month, in barrels. | — |
| 50 |
sold_bbl
|
numeric measured in bbl | TotalLiquidHydrocarbonsSold |
Skim oil sold during the month, in barrels. | — |
| 51 |
transferred_bbl
|
numeric measured in bbl | TotalLiquidHydrocarbonsTransferred |
Skim oil transferred out during the month, in barrels. | — |
| 52 |
bs_and_w_collected_bbl
|
numeric measured in bbl | BasicSedimentationAndWaterCollected |
Basic sediment and water collected during the month, in barrels. | — |
| 53 |
storage_end_bbl
|
numeric measured in bbl | LiquidHydrocarbonsInStorageEndOfReportingPeriod |
Skim oil in storage at the end of the month, in barrels. e.g. 96.0000 | — |
| 54 |
period_month
|
text | ReportingPeriodMonth |
The reporting month as the file spells it ('5'). Kept as published; `period_yyyymm` beside it is the parsed form and the one to filter on. e.g. 5 | — |
| 55 |
period_year
|
text | ReportingPeriodYear |
The reporting year as the file spells it ('2026'). Kept as published, like `period_month` above. e.g. 2026 | — |
p18_consolidated
9 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. | — |
| 3 |
ordinal
key
|
integer | — | This row's position in its array in the JSON, from 1. EZRRC's column: the file expresses the ordering by position and carries no sequence number. e.g. 1 | — |
| 4 |
associated_system_serial_no
join
|
text | AssociatedSytemSerialNumber |
The serial number of the associated system the water was injected through, in the district-serial style ('08-1259'). RRC's JSON key for it is 'AssociatedSytemSerialNumber', missing an s; the loader reproduces the typo rather than correcting it. e.g. 08-1259 | — |
| 5 |
operator_name
|
text | OperatorName |
The associated system operator's name, as filed. e.g. MID-STATES OPERATING COMPANY | — |
| 6 |
water_injected_bbl
|
numeric measured in bbl | WaterInjected |
Barrels of water injected through the associated system in the reporting month. e.g. 486488.0000 | — |
| 7 |
facility_key
join
|
text | FacilityKey |
RRC's internal facility key for the associated system, as filed. e.g. 58553 | — |
| 8 |
lease_no
|
text | LeaseNumber |
Despite the name, this column holds a lease NAME and not a lease number -- 'B&E 268', 'REWARD SWD A'. Not one of the 3,620 non-null values is numeric. The name is RRC's JSON key; it is reproduced rather than renamed, and this note is the correction. e.g. B&E 268 | — |
| 9 |
field_name
|
text | FieldName |
The field the associated system injects into, by name -- 'SPRABERRY (TREND AREA)'. e.g. SPRABERRY (TREND AREA) | — |
p18_gatherer
7 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. | — |
| 3 |
ordinal
key
|
integer | — | This row's position in its array in the JSON, from 1. EZRRC's column: the file expresses the ordering by position and carries no sequence number. e.g. 1 | — |
| 4 |
gatherer_name
|
text | Name |
Who gathered the skimmed liquid, as filed -- 'ACE GATHERING, INC. (003531)'. Filers often put the P-5 number in brackets inside the name; it is not split out, because on many rows it is not there. e.g. TRANSOIL MARKETING, LLC (864477) | — |
| 5 |
rrc_id_type
|
text | RRCIDNumberType |
Which registry `rrc_id` belongs to: T1RegistrationNumber (11,304 rows), OperatorNumber (9,380), P18SystemSerialNumber (2,047), R9FacilityNumber (933). Read the two together -- the same string means four different things depending on this column. e.g. T1RegistrationNumber | — |
| 6 |
rrc_id
join
|
text | RRCIDNumber |
The gatherer's identifier in whichever registry `rrc_id_type` names -- '7B-0842' for a T-1 registration, a bare P-5 number for an operator. Only the OperatorNumber rows are joinable to the operator directory, and only after the type has been checked. e.g. 7B-0842 | — |
| 7 |
amount_bbl
|
numeric measured in bbl | Amount |
Barrels of skimmed liquid this gatherer took, in the reporting month. e.g. 3890.0000 | — |
p18_lha
12 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. | — |
| 3 |
ordinal
key
|
integer | — | This row's position in its array in the JSON, from 1. EZRRC's column: the file expresses the ordering by position and carries no sequence number. e.g. 31 | — |
| 4 |
identifier_type
|
text | IdentifierType |
Which kind of key `lease_or_permit_no` holds: 'RRCLeaseNumber' on 3,278,421 rows and 'DrillingPermitNumber' on 140,024. Read the two together -- they are different registries and a lease number compared against a permit number matches by accident. Null on 1,026 rows, where the number cannot be interpreted at all. e.g. RRCLeaseNumber | — |
| 5 |
district
join
|
text | District |
The district the lease is in, as filed, in the printed spelling (08, 7C, 8A). Not clean: 110 rows of the March 2025 file carry a whole system serial number here ('7C-0408') instead of a district, and a scatter of others hold '8', '8a', '098', '7c', '07', '11' and '12'. Filter with that in mind; this column is not bound to the district code set for exactly that reason. e.g. 02 | — |
| 6 |
lease_or_permit_no
join
|
text | DrillingPermitOrLeaseNumber |
The RRC lease number or the drilling permit number the skim oil was credited to -- `identifier_type` says which. As filed, so leading zeros are the filer's: on a 5,000-row sample, 1,654 of the lease-number rows resolve in the PDQ regulatory lease directory once the district is padded to two characters and the lease to five, and the shortfall is unpadded and mistyped numbers rather than a key mismatch. e.g. 10371 | — |
| 7 |
lease_name
|
text | LeaseName |
The lease's name as filed -- 'QUINN 37-36E', 'KORTH VICKERS UNIT E'. e.g. MCELVEEN UNIT A | — |
| 8 |
field_name
|
text | FieldName |
The field the lease produces from, by name -- 'PHANTOM (WOLFCAMP)', 'EAGLEVILLE (EAGLE FORD-2)'. A name as filed, not a field number. e.g. EAGLEVILLE (EAGLE FORD-2) | — |
| 9 |
organization_name
|
text | OrganizationName |
The lease operator's name as filed. A name only: the P-18 carries no P-5 number for the receiving lease, only for the system operator on the filing above. e.g. BURLINGTON RESOURCES O & G CO LP | — |
| 10 |
allocated_to_lease_bbl
|
numeric measured in bbl | AllocatedToLease |
Barrels of skimmed liquid hydrocarbon credited back to this lease -- the whole point of the form, and a volume that appears in no other public RRC file. 16,102,302 barrels over 1,312,942 non-zero rows; the largest single credit is 93,525 barrels. e.g. 14.0000 | — |
| 11 |
slugs_credited_bbl
|
numeric measured in bbl | SlugsCreditedToLeaseOrGasWell |
Barrels of slug liquid credited to this lease, as distinct from skimmed liquid. 5,597,816 barrels across the file. e.g. 0.0000 | — |
| 12 |
water_received_from_lease_bbl
|
numeric measured in bbl | WaterReceivedFromLease |
Barrels of produced water received FROM this lease, which is what the allocation is worked out from. 6.39 billion barrels across the file, and the reason this table is also the finest-grained public record of where Texas produced water goes. e.g. 7350.0000 | — |
p18_out_of_state_water
6 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. | — |
| 3 |
ordinal
key
|
integer | — | This row's position in its array in the JSON, from 1. EZRRC's column: the file expresses the ordering by position and carries no sequence number. e.g. 1 | — |
| 4 |
state
|
text | State |
Which state the water came from: NM (3,900 of the 4,592 rows), LA (611), OK (37), MS (19), AR (18), WY (5), OH (1). New Mexico dominating is the Delaware Basin crossing the state line. e.g. NM | — |
| 5 |
amount_skimmed_bbl
|
numeric measured in bbl | AmountSkimmed |
Barrels of liquid hydrocarbon skimmed off this state's water. Kept apart from the Texas figure because it cannot be allocated back to a Texas lease. e.g. 710.0000 | — |
| 6 |
water_received_bbl
|
numeric measured in bbl | VolumeOfWaterReceived |
Barrels of water received from this state in the reporting month. e.g. 1602763.0000 | — |
p18_well
11 columns
Documented here because RRC ships it in the same file. It is not in a download of this dataset.
| # | Column | Type | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|
| 1 |
report_month
key
join
|
integer | — | The month RRC PUBLISHED the file this row came out of, as one YYYYMM integer, taken from the file's name. It is not the month the filing reports on -- see `period_yyyymm` -- because a month's file holds the P-18s APPROVED that month: 1,216 of the 45,825 filings report on a period more than a year before the file carrying them, and 19 on a period after it. This is the column the loader replaces by, so it is also the column that says which release a row belongs to. | — |
| 2 |
report_seq
key
join
|
integer | — | The filing's position in its month's file, from 1. EZRRC's column, and the reason the parent key works at all: the P-18 JSON carries no report key, and the business key (system, operator, period, purpose) is not unique either -- June 2026 holds two Corrected filings for 08-1195 / 102324 / 2025-02. A month is always replaced whole, never merged into, so the position is stable. | — |
| 3 |
ordinal
key
|
integer | — | This row's position in its array in the JSON, from 1. EZRRC's column: the file expresses the ordering by position and carries no sequence number. e.g. 1 | — |
| 4 |
api_no
join
|
text | APINumber |
The disposal well's API number as filed: eight digits, county then unique, with no '42' state prefix -- '13138348'. Every one of the 53,413 rows carries one and all eight digits long. On a 5,000-row sample, all 5,000 resolve in the wellbore database once split into its two halves (substr 1-3 as api_county, substr 4-5 as api_unique), which makes it the most reliable well key in this family. e.g. 25536720 | — |
| 5 |
is_primary
|
boolean | IsPrimary |
True on 45,371 rows, false on 8,042. Which of the system's wells the filing treats as the primary one; a system with several disposal wells names them all and flags one. e.g. True | — |
| 6 |
uic_no
join
|
text | UICNumber |
The well's UIC control number, zero-padded to nine digits ('000082064'). Present on 47,757 of the 53,413 rows, and the way into the UIC database, whose `cntl_no` is the same number. e.g. 000115129 | — |
| 7 |
district
join
|
text | District |
The district the well is in, in the printed spelling. Clean here, unlike the same-named column on p18_lha: every non-null value is a real district designation. e.g. 02 | RRC district (printed designation) |
| 8 |
lease_no
join
|
text | LeaseNumber |
The RRC lease number the well is on, as filed. All 52,624 non-null values are numeric, so unlike p18_consolidated.lease_no this column really does hold a number. e.g. 12198 | — |
| 9 |
lease_name
|
text | LeaseName |
The lease's name as filed. e.g. HENNING | — |
| 10 |
well_no
|
text | WellNumber |
The well's number as filed. Trailing blanks are the filer's and are kept, so compare with `like` rather than `=` unless you know the padding. e.g. 2 | — |
| 11 |
field_name
|
text | FieldName |
The field the well is completed in, by name -- 'GOVERNMENT WELLS, N. ( WILCOX)'. A name as filed, spacing included, not a field number. e.g. EAGLEVILLE (EAGLE FORD-2) | — |
Code lookups used here
Every coded column in this dataset resolves to a real lookup table, so
a well code of G can be read as what it actually means.
RRC district (printed designation) 14 values
Read by district_code, district
The district as the Railroad Commission prints it: 01-06, 6E, 7B, 7C, 08, 8A, 09 and 10, plus 20 for statewide. This is what appears on permits, completions, ST-1 filings and inspection reports. It is not interchangeable with the internal district number. A column holding '11' means District 8A under the internal numbering and nothing at all under this one.
| Code | Means |
|---|---|
01 |
District 01 — San Antonio RRC District 01, administered from the San Antonio district office. |
02 |
District 02 — San Antonio RRC District 02, administered from the San Antonio district office. |
03 |
District 03 — Houston RRC District 03, administered from the Houston district office. |
04 |
District 04 — Corpus Christi RRC District 04, administered from the Corpus Christi district office. |
05 |
District 05 — Kilgore RRC District 05, administered from the Kilgore district office. |
06 |
District 06 — Kilgore RRC District 06, administered from the Kilgore district office. |
6E |
District 6E — Kilgore RRC District 6E, administered from the Kilgore district office. |
7B |
District 7B — Abilene RRC District 7B, administered from the Abilene district office. |
7C |
District 7C — San Angelo RRC District 7C, administered from the San Angelo district office. |
08 |
District 08 — Midland RRC District 08, administered from the Midland district office. |
8A |
District 8A — Midland RRC District 8A, administered from the Midland district office. |
09 |
District 09 — Wichita Falls RRC District 09, administered from the Wichita Falls district office. |
10 |
District 10 — Pampa RRC District 10, administered from the Pampa district office. |
20 |
District 20 — State Wide RRC District 20, administered from the State Wide district office. |
Source: Generated from texas.pdq_gp_district.district_name
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.
P-18 Skim Oil / Condensate Report joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
filed by
The P-5 number of the operator that runs the disposal or skim-oil system. Exact on all 45,825 filings, over 569 distinct organizations -- the cleanest operator column in either of these two families. It is the operator of the SYSTEM, not of the leases the skimmed oil is credited back to. Those are named in p18_lha as text and carry no P-5 number of their own. The P-18 stores its operator number as NUMERIC because RRC ships it as a string in the JSON, and the directory keys on an integer, so cast one side: no filing has a fractional part.
p18-skim-oil-condensate.operator_no = p5-organization-ascii.id
Where this comes from
- Published by
- Texas Railroad Commission — the original page
- Original format
- JSON Structured JSON.
- RRC publishes
- Updated once a month (Monthly, mid-month, once RRC has posted the previous month.)
- RRC download link
- GoAnywhere MFT
- Record layout manuals
- Our table
texas.p18_report
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.