Get the data

Free. You will be asked to confirm an email address before the files are built — that is the only gate, and it is there so we can tell you when a large export is ready.

Preview the first 100 rows

What this is

OLA001K. The W-10 is the periodic test filing that keeps an oil well's allowable current: the well's daily oil, gas and water on the test day, how it was being produced, and — for a well that is not producing — what it is being used for and when it was shut in. RRC publishes the recent cycles as one 110-byte EBCDIC record per test; here they are decoded, with the implied decimal restored, the year/month/day fields composed into dates and the mainframe's unprintable "not in a unit" marker turned into a null.

What you can do with it

Track how a well's tested potential has moved over the recent cycles, see which wells on a lease are shut in and since when, and find wells whose W-10 is overdue.

Gotchas

The window rolls, and it is shorter than the name suggests: the tape fetched in August 2026 held thirteen cycles (July 2025 through July 2026), with the tests themselves reaching back to 2022. A test that was in last month's file may not be in this month's, so a history has to be accumulated by keeping snapshots.

The key is district + lease_no + well_no, and the district is written the way RRC prints it (01-06, 6E, 7B, 7C, 08, 8A, 09, 10). PDQ writes the same lease under its INTERNAL district number, so a join to PDQ goes through PDQ's district_name, not district_no — and only against oil_gas_code = 'O', because a gas lease can carry the same digits.

daily_oil_bbl is stored with one decimal place; the tape wrote it as six digits with the point implied, so 30 barrels arrived as '000300'. The other volumes are whole numbers.

Two flag columns carry values the 1998 manual does not list: producing_method has '0' and 'B' alongside the documented letters, and type_well_flag is '00' in two-thirds of rows (on wells that also report a producing method) and 'PR' in a few thousand. RRC has not said what they mean; the column descriptions record what the manual does document and nothing more.

gas_lift_gas_injected is zero in every row of the current tape, and prod_method_other_rpt is twenty zeros rather than blank when no 'other' method was filed.

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

Record layout

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

oil_well_status_w10 31 columns

Record layout for oil_well_status_w10 — 31 columns, with byte positions
# Column Type Bytes RRC name Meaning Lookup
1 district key join text 1-2 W10-DIST RRC district the well is in, written the way RRC prints it: 01-06, 6E, 7B, 7C, 08, 8A, 09, 10. Not the internal number PDQ uses in district_no — join to PDQ on district_name. e.g. 01 RRC district (printed designation)
2 lease_no key join integer 3-7 W10-LEASE The five-digit oil lease number, unique within its district. Stored as an integer, so PDQ's zero-padded '05082' is 5082 here. e.g. 3424
3 well_no key join text 8-13 W10-WELL-NO The operator's well number on the lease, up to six characters: '1', '1H', '26H'. e.g. 8756
4 unit_no text 14 W10-UNIT-NO Unit identifier, one character; a digit usually names a waterflood grouping. The tape writes an unprintable byte when the well is not in a unit — 78% of records — and the loader stores those as null rather than a control character.
5 cycle_year smallint 15-18 W10-CYCLE-YEAR Four-digit year of the ADP reporting cycle the W-10 was processed in.
6 cycle_month smallint 19-20 W10-CYCLE-MONTH Two-digit month of the reporting cycle.
7 eff_year smallint 21-24 W10-EFF-YEAR Year the test was made effective. Composed into effective_date.
8 eff_month smallint 25-26 W10-EFF-MONTH Month the test was made effective.
9 eff_day smallint 27-28 W10-EFF-DAY Day the test was made effective.
10 type_status_flag text 29 W10-TYPE-STATUS-FLAG What kind of filing this is: I initial potential test, R retest, S survey, W Form W-2 filed, D dummy record used to initialise RRC's database. Surveys are the bulk of the file. e.g. R
11 producing_method text 30 W10-PRODUCING-METHOD How the well was being produced when tested: F flowing, P pumping, G gas lift, V vacuum, S steam injection, H secondary head injection, C carbon dioxide, O other (see prod_method_other_rpt). The file also carries '0' and 'B', which the manual does not list. Null on wells that are not producing. e.g. P
12 prod_method_other_rpt text 31-50 W10-PROD-METH-OTHER-RPT The producing method as written in, when producing_method is O for other. Twenty zeros — not blank — when it does not apply.
13 test_year smallint 51-54 W10-TEST-YEAR Year the well was tested. Composed into test_date.
14 test_month smallint 55-56 W10-TEST-MONTH Month the well was tested.
15 test_day smallint 57-58 W10-TEST-DAY Day the well was tested.
16 daily_oil_bbl numeric measured in bbl/d 59-64 W10-DAILY-OIL Daily oil production on the test, in barrels, to one decimal place. The tape stores this as six digits with the decimal point implied (PIC 9(5)V9), so 30 barrels was written '000300'; the loader restores the point. e.g. 3.0
17 daily_water_bbl integer measured in bbl/d 65-68 W10-DAILY-WATER Daily water produced on the test, in barrels.
18 daily_gas_mcf bigint measured in MCF/d 69-75 W10-DAILY-GAS Daily gas produced during the potential test, in thousand cubic feet.
19 gas_oil_ratio integer measured in cf/bbl 76-80 W10-GAS-OIL-RATIO Gas-oil ratio in cubic feet per barrel, as filed on the W-10 (RRC computes it from the daily gas and daily oil).
20 gas_lift_gas_injected integer measured in MCF/d 81-86 W10-GAS-LIFT-GAS-INJECTED Gas injected by a gas-lift well, MCF per day. Zero in every row of the tape fetched in August 2026, including the 36,884 gas-lift wells.
21 siwh_year smallint 87-90 W10-SIWH-YEAR Year the well was shut in or last used. Composed into siwh_date.
22 siwh_month smallint 91-92 W10-SIWH-MONTH Month the well was shut in or last used.
23 type_well_flag text 93-94 W10-TYPE-WELL-FLAG What a non-producing well is being used for. The manual lists AI air injection, GI gas injection, WI water injection, ST steam injection, CO CO2 injection, DI salt water disposal, AB abandoned, TA temporarily abandoned, SH shut-in, LP LPG storage, GS gas storage, WS water supply, GT geothermal, OB observation, OS other service, LU lease use, DW domestic, PP partial plug, SM shut-in multi-completion and BM brine mining. The file also carries '00' (two-thirds of rows, on wells that report a producing method) and 'PR', which it does not. e.g. 00
24 processed_year smallint 95-98 W10-PROCESSED-YEAR Year RRC processed the W-10. Composed into processed_date.
25 processed_month smallint 99-100 W10-PROCESSED-MONTH Month RRC processed the W-10.
26 processed_day smallint 101-102 W10-PROCESSED-DAY Day RRC processed the W-10.
27 cycle_date key date The reporting cycle as a date — the first of cycle_year/cycle_month. Composed by the loader; null when the tape carried zeros. e.g. 2026-01-01
28 effective_date key date Date the W-10 test was made effective for allowable purposes, composed from eff_year, eff_month and eff_day. Never null on the current tape.
29 test_date date Date the well was tested, composed from test_year, test_month and test_day. Null in the 890 rows where the tape carried zeros. e.g. 2026-01-05
30 siwh_date date First of the month the well was shut in or last used, composed from siwh_year and siwh_month. Null while the well is producing.
31 processed_date date Date RRC processed the W-10, composed from the processed_* columns. Never null on the current tape.

Code lookups used here

Every coded column in this dataset resolves to a real lookup table, so a well code of G can be read as what it actually means.

RRC district (printed designation) 14 values

Read by district

The district as the Railroad Commission prints it: 01-06, 6E, 7B, 7C, 08, 8A, 09 and 10, plus 20 for statewide. This is what appears on permits, completions, ST-1 filings and inspection reports. It is not interchangeable with the internal district number. A column holding '11' means District 8A under the internal numbering and nothing at all under this one.

RRC district (printed designation) — 14 codes and their meanings
CodeMeans
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.

Oil Well Status (26 Month W-10) joins to PDQ Well Completion Directory on District = District name and Lease number = Lease number and Well number = Well number — many rows here share a single row there.

was tested on the W-10 as

PDQ's oil-schedule well completion, matched to its W-10 tests on the printed district, lease number and well number. Restrict the PDQ side to oil_gas_code = 'O': gas completions carry gas well IDs in the same lease_no column, and 6 of 20,000 sampled gas rows collide with a real oil lease. 1,667 of 5,000 sampled oil completions have a test in the current window — the W-10 file only holds wells that filed one recently, so a miss means no recent test, not a bad key. These two columns are different types — one is text, the other an integer — so a direct equality is rejected by Postgres. Cast the text side to integer, which also disposes of any leading zeros; casting the integer to text would not, because '000123' and 123 are not equal as text.

pdq-well-completion.district_name = oil-well-status-w10.district AND pdq-well-completion.lease_no = oil-well-status-w10.lease_no AND pdq-well-completion.well_no = oil-well-status-w10.well_no

Oil Well Status (26 Month W-10) joins to PDQ Lease Summary (master) on District = District name and Lease number = Lease number — many rows here share a single row 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

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.oil_well_status_w10

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.