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

The spine of the whole catalog. WBA091 is a hierarchical fixed-width file with twenty-eight record types: one root record per API number, then repeating records for completions, form dates, formations, casing strings, perforated intervals, tubing, remarks, plugging, drilling permit numbers, well identifiers and H-15 inactive-well tests.

EZRRC parses it into a parent table plus eleven child tables, each keyed on the API county and unique number, and publishes each child as a dataset of its own — because "every casing string in Texas" is a thing people want and today the only way to get it is to write a reader for a 247-byte record layout.

Exporting this dataset gives you the root records plus every child file alongside them.

What you can do with it

Answer the question every other dataset assumes you can answer: does this API number correspond to a real wellbore, when was it completed, how deep is it, and has it been plugged.

Map 1.2 million wells from the WGS84 coordinates the file carries, or reconstruct a wellbore's mechanical history from its casing, tubing and perforation records.

Find inactive wells by joining the H-15 test records, and find orphan candidates by combining the plugging flag with the 14(b)(2) status.

Gotchas

Texas writes the API number four different ways across these files and none of them says so. The permit and wellbore files write it dashed as 42-XXX-XXXXX; the completion file fuses it to eight digits (county then unique, no state prefix); the wellbore file also carries the two halves separately as api_county and api_unique; and the UIC file stores only the five-digit unique with the county in its own column. Normalise before you join anything.

The root record is one row per API number, but around 17% of wellbores have no WGS84 coordinate at all. Spatial exports drop those rows and report how many were dropped.

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.

An API number existing does not mean a well exists. The file includes cancelled assignments, dummy numbers and numbers that were re-pointed at another wellbore — read error_api_assign_code, dummy_api_number and refer_correct_api_nbr before treating a row as a hole in the ground.

Record layout

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

wb_casings 17 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 casing_count key smallint 3-5 WB-CASING-COUNT Sequence of this casing string within the bore.
4 cas_inch integer 6-7 WB-CAS-INCH Casing diameter, whole inches.
5 cas_frac_num integer 8-9 WB-CAS-FRAC-NUM Numerator of the fractional part of the casing diameter.
6 cas_frac_denom integer 10-11 WB-CAS-FRAC-DENOM Denominator of the fractional part of the casing diameter.
7 casing_depth_set integer measured in ft 20-24 WB-CASING-DEPTH-SET Depth the string was set to, feet.
8 mlti_stg_tool_dpth integer measured in ft 25-29 WB-MLTI-STG-TOOL-DPTH Multi-stage cementing tool depth, feet.
9 amount_of_cement integer 30-34 WB-AMOUNT-OF-CEMENT Amount of cement pumped; the unit is in the cement measurement column.
10 cement_measurement text 35 WB-CEMENT-MEASUREMENT Unit the cement amount is in: sacks, cubic yards or feet. Cement quantity unit
11 hole_inch integer 36-37 WB-HOLE-INCH Hole diameter, whole inches.
12 hole_frac_num integer 38-39 WB-HOLE-FRAC-NUM Numerator of the fractional part of the hole diameter.
13 hole_frac_denom integer 40-41 WB-HOLE-FRAC-DENOM Denominator of the fractional part of the hole diameter.
14 top_of_cement_casing text 43-49 WB-TOP-OF-CEMENT-CASING Reported top of cement behind this string.
15 amount_casing_left integer measured in ft 50-54 WB-AMOUNT-CASING-LEFT Casing left in the hole, feet.
16 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.
17 cas_wt_table text measured in lb/ft 12-19 WB-CAS-WT-TABLE Casing weight in pounds per foot (the layout allows two entries).

wb_completions 19 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 row_no key smallint Sequence number of this row within its parent record. Part of the key.
4 oil_code text 3 WB-OIL-CODE 'O' when the completion sits on the oil proration schedule. Oil or gas schedule
5 oil_district text 4-5 WB-OIL-DISTRICT District of the oil lease.
6 oil_lse_nbr join text 6-10 WB-OIL-LSE-NBR Oil lease number.
7 oil_well_nbr text 11-16 WB-OIL-WELL-NBR Well number on the oil lease.
8 gas_dist text 17-18 WB-GAS-DIST District of the gas well ID.
9 gas_well_no join text 19-24 WB-GAS-WELL-NO Gas well ID number.
10 multi_well_rec_nbr text 25 WB-MULTI-WELL-REC-NBR Multi-well record number, for wells with several completions.
11 api_suffix text 26-27 WB-API-SUFFIX Two-digit API suffix identifying a sidetrack.
12 active_inactive_code text 46 WB-ACTIVE-INACTIVE-CODE Whether this completion is currently active.
13 created_from_pi_flag text 122 WB-CREATED-FROM-PI-FLAG Y when the record was created from the old P-I tape rather than a filing.
14 rule_37_nbr text 123-129 WB-RULE-37-NBR Statewide Rule 37 (spacing exception) case number, if any.
15 p15_flag text 156 WB-P15-FLAG Y when a Form P-15 productivity statement is on file.
16 p12_flag text 157 WB-P12-FLAG Y when a Form P-12 pooling authority is on file.
17 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.
18 dwn_hole_commingle_code text 87 WB-DWN-HOLE-COMMINGLE-CODE Downhole commingling authority code.
19 plug_date_pointer text 158-165 WB-PLUG-DATE-POINTER CCYYMMDD pointer to the plugging record for this completion.

wb_dates 24 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 file_key key text 3-10 WB-FILE-KEY Key of the technical-data form set this row describes.
4 file_date date 11-18 WB-FILE-DATE Date the completion build was filed, CCYYMMDD.
5 except_rule_11 text 27 WB-EXCEPT-RULE-11 Y when an exception to Statewide Rule 11 was granted.
6 cement_affidavit text 28 WB-CEMENT-AFFIDAVIT Cement affidavit status: N, Y, B, A or R.
7 g5_flag text 29 WB-G5-FLAG Y when a Form G-5 gas well classification is on file.
8 w12_flag text 30 WB-W12-FLAG Y when a Form W-12 inclination report is on file.
9 dir_survey text 31 WB-DIR-SURVEY Y when a directional survey is on file.
10 w2_g1_date date 32-39 WB-W2-G1-DATE Date the W-2 or G-1 completion report was filed, CCYYMMDD.
11 compl_date date 40-47 WB-COMPL-DATE Completion date, CCYYMMDD.
12 drl_compl_date date 48-55 WB-DRL-COMPL-DATE Date drilling was completed, CCYYMMDD.
13 plugb_depth1 integer measured in ft 56-60 WB-PLUGB-DEPTH1 First plug-back depth, feet.
14 plugb_depth2 integer measured in ft 61-65 WB-PLUGB-DEPTH2 Second plug-back depth, feet.
15 water_injection_nbr text 66-71 WB-WATER-INJECTION-NBR Water injection permit number.
16 salt_wtr_nbr text 72-76 WB-SALT-WTR-NBR Saltwater disposal permit number.
17 remarks_ind text 85 WB-REMARKS-IND Y when remark records exist for this bore.
18 elevation integer measured in ft 86-89 WB-ELEVATION Ground or derrick elevation, feet.
19 elevation_code text 90-91 WB-ELEVATION-CODE Which point the elevation was measured from. Depths are relative to it. Elevation reference point
20 docket_nbr text 100-109 WB-DOCKET-NBR Docket number associated with the completion, if any.
21 psa_well_flag text 110 WB-PSA-WELL-FLAG Y when the horizontal well is covered by a production sharing agreement.
22 allocation_well_flag text 111 WB-ALLOCATION-WELL-FLAG Y when the well is an allocation well.
23 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.
24 log_file_rba text 92-99 WB-LOG-FILE-RBA Pointer into RRC's separate wellbore log file.

wb_drilling_permits 4 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 permit_number key join text 3-8 WB-PERMIT-NUMBER A drilling permit number associated with this bore. One bore can carry many: an original drill permit plus every amendment and re-entry.
4 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.

wb_formations 6 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 formation_cntr key smallint 3-5 WB-FORMATION-CNTR Sequence of this formation top within the bore.
4 formation_name text 6-37 WB-FORMATION-NAME Formation name as the operator wrote it. Spelling is not standardised.
5 formation_depth integer measured in ft 38-42 WB-FORMATION-DEPTH Depth to the top of the formation, feet.
6 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.

wb_h15_reports 17 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 h15_date_key key text 3-10 WB-H15-DATE-KEY Key of the H-15 filing, CCYYMMDD.
4 h15_status text 11 WB-H15-STATUS Where the bore stands against its H-15 test requirement. H-15 inactive well test status
5 h15_operator join text 12-17 WB-H15-OPERATOR Operator number that filed the H-15.
6 h15_next_test_ccyy text 18-21 WB-H15-NEXT-TEST-CCYY Year the next H-15 test is due.
7 h15_next_test_mm text 22-23 WB-H15-NEXT-TEST-MM Month the next H-15 test is due.
8 h15_district text 24-25 WB-H15-DISTRICT District the bore is in.
9 h15_field join text 26-33 WB-H15-FIELD Field the bore is in.
10 h15_oil_gas_code text 44 WB-H15-OIL-GAS-CODE 'O' or 'G' — which schedule the tested completion sits on. Oil or gas schedule
11 h15_lease_nbr text 45-49 WB-H15-LEASE-NBR Lease number of the tested completion.
12 h15_well_nbr text 50-55 WB-H15-WELL-NBR Well number of the tested completion.
13 h15_test_date date Date of the H-15 test.
14 h15_base_usable_water integer measured in ft 70-75 WB-H15-BASE-USABLE-WATER Depth to the base of usable-quality water, feet.
15 h15_type_test_flag text 76 WB-H15-TYPE-TEST-FLAG F for a fluid-level test, M for a mechanical-integrity test.
16 h15_status_date date Date the current H-15 status was assigned.
17 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.

wb_perforations 7 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 perf_count key smallint 3-5 WB-PERF-COUNT Sequence of this perforated interval within the bore.
4 from_perf integer measured in ft 6-10 WB-FROM-PERF Top of the perforated interval, feet.
5 to_perf integer measured in ft 11-15 WB-TO-PERF Bottom of the perforated interval, feet.
6 open_hole_code text 16-17 WB-OPEN-HOLE-CODE 'OH' when the interval is open hole rather than perforated casing. Open hole indicator
7 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.

wb_plugging 32 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 date_w3_filed key date 3-10 WB-DATE-W3-FILED Date the Form W-3 plugging report was filed, CCYYMMDD.
4 date_well_bore_plugged date 11-18 WB-DATE-WELL-BORE-PLUGGED Date the bore was plugged, CCYYMMDD.
5 plug_total_depth integer measured in ft 19-23 WB-PLUG-TOTAL-DEPTH Total depth at plugging, feet.
6 plug_cement_comp text 24-55 WB-PLUG-CEMENT-COMP Cement company that performed the plugging.
7 plug_mud_filled text 56 WB-PLUG-MUD-FILLED Y when the hole was mud filled.
8 plug_dril_perm_date date 76-83 WB-PLUG-DRIL-PERM-DATE Date of the drilling permit under which the bore was drilled.
9 plug_dril_perm_no text 84-89 WB-PLUG-DRIL-PERM-NO Drilling permit number the bore was drilled under.
10 plug_dril_comp_date date 90-97 WB-PLUG-DRIL-COMP-DATE Date drilling was completed.
11 plug_log_attached text 98 WB-PLUG-LOG-ATTACHED Y when a log was attached to the plugging report.
12 plug_type_log text 131 WB-PLUG-TYPE-LOG Type of log: D, E, R, A or a combination.
13 plug_fresh_water_depth integer measured in ft 132-136 WB-PLUG-FRESH-WATER-DEPTH Base of usable-quality water, feet.
14 plug_type_well text 200 WB-PLUG-TYPE-WELL Type of well plugged: O oil, G gas, D dry, S service.
15 plug_multi_compl_flag text 201 WB-PLUG-MULTI-COMPL-FLAG Y when the bore had multiple completions.
16 plug_log_released_date date 204-211 WB-PLUG-LOG-RELEASED-DATE Date the log was released.
17 state_funded_plug_number text 220-226 WB-STATE-FUNDED-PLUG-NUMBER State-funded plugging job number, when Texas paid to plug the well.
18 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.
19 plug_log_released_to text 99-130 WB-PLUG-LOG-RELEASED-TO Who the log was released to.
20 plug_log_file_rba text 212-219 WB-PLUG-LOG-FILE-RBA Pointer into RRC's separate log file.
21 plug_cem_aff text 202 WB-PLUG-CEM-AFF Y when a cement affidavit accompanied the plugging report.
22 plug_mud_applied text 57-68 WB-PLUG-MUD-APPLIED Description of the mud applied.
23 plug_mud_weight integer measured in lb/gal 69-71 WB-PLUG-MUD-WEIGHT Mud weight, pounds per gallon.
24 plug_material_left text 177 WB-PLUG-MATERIAL-LEFT Y when material was left in the hole.
25 plug_uwqp text 137-176 WB-PLUG-UWQP Usable-quality water protection intervals, four from/to pairs packed into one field.
26 plug_13a text 203 WB-PLUG-13A Y when a Statewide Rule 13(a) exception applied.
27 plug_oil_code text 178 WB-PLUG-OIL-CODE 'O' when the plugged completion sat on the oil schedule.
28 plug_oil_dist text 179-180 WB-PLUG-OIL-DIST District of the plugged oil lease.
29 plug_oil_lse_nbr text 181-185 WB-PLUG-OIL-LSE-NBR Oil lease number of the plugged completion.
30 plug_oil_well_nbr text 186-191 WB-PLUG-OIL-WELL-NBR Well number of the plugged completion.
31 plug_gas_dist text 192-193 WB-PLUG-GAS-DIST District of the plugged gas well ID.
32 plug_gas_well_no text 194-199 WB-PLUG-GAS-WELL-NO Gas well ID of the plugged completion.

wb_remarks 6 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 rmk_lne_cnt key smallint 3-5 WB-RMK-LNE-CNT Line number of this remark. Remarks are 70 characters per line and wrap.
4 rmk_type_code text 6 WB-RMK-TYPE-CODE Remark type code.
5 remarks text 7-76 WB-REMARKS One 70-character line of free text. Order by line number to rebuild the paragraph.
6 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.

wb_tubing 9 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 segment_counter key smallint 3-5 WB-SEGMENT-COUNTER Sequence of this tubing string within the bore.
4 tubing_inches integer 6-7 WB-TUBING-INCHES Tubing diameter, whole inches.
5 tubing_frac_num integer 8-9 WB-TUBING-FRAC-NUM Numerator of the fractional part of the tubing diameter.
6 tubing_frac_denom integer 10-11 WB-TUBING-FRAC-DENOM Denominator of the fractional part of the tubing diameter.
7 depth_set integer measured in ft 12-16 WB-DEPTH-SET Depth the tubing was set to, feet.
8 packer_set integer measured in ft 17-21 WB-PACKER-SET Depth the packer was set to, feet.
9 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.

wb_well_ids 8 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location.
2 api_unique key join text The five-digit well component of the API number. Unique only in combination with the county code.
3 row_no key smallint Sequence number of this row within its parent record. Part of the key.
4 oil_code text 3 WB-OIL-CODE 'O' when the identifier is an oil lease identifier. Oil or gas schedule
5 oil_district text 4-5 WB-OIL-DISTRICT District of the oil lease.
6 oil_lse_number join text 6-10 WB-OIL-LSE-NUMBER Oil lease number.
7 oil_well_number text 11-16 WB-OIL-WELL-NUMBER Well number on the oil lease.
8 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.

wellbore 45 columns

# Column Type Bytes RRC name Meaning Lookup
1 api_county key join text 3-5 WB-API-COUNTY The three-digit county component of the API number. For offshore wells this is the nearest onshore county, not the well's actual location. e.g. 001 Texas county code
2 api_unique key join text 6-10 WB-API-UNIQUE The five-digit well component of the API number. Unique only in combination with the county code. e.g. 31170
3 api_number join text The API well number. Texas is state 42, so a full 10-digit API is 42 + county + unique. This is the single most useful join key in the whole catalog. e.g. 42-001-31170
4 field_district text 15-16 WB-FIELD-DISTRICT District of the field the bore is assigned to.
5 res_cnty_code text 17-19 WB-RES-CNTY-CODE Reservoir county code, where it differs from the API county.
6 total_depth integer measured in ft 29-33 WB-TOTAL-DEPTH Maximum depth of well bore.
7 valid_fluid_level integer measured in ft 34-38 WB-VALID-FLUID-LEVEL In H-15 testing, a valid distance in feet determined by the commission between the bottom of usable water in the area and top of fluid in wellbore if that distance is different than the standard 250'.
8 orig_compl_date date Original completion date, assembled from the century, year, month and day fields WBA091 stores separately.
9 cert_revoked_date date Date the bore's certification was revoked.
10 cert_denial_date date Date certification was denied.
11 denial_reason_flag text 55 WB-DENIAL-REASON-FLAG This flag will be set to 'a' if it was automatically denied certification for house bill 1975. This flag will be set to 'm' if it was manually (online) denied certification for house bill 1975. This flag will be set to zero or space if it has not been denied certification for house bill 1975.
12 error_api_assign_code text 56 WB-ERROR-API-ASSIGN-CODE Indicates that API previously assigned has changed.
13 refer_correct_api_nbr text 57-64 WB-REFER-CORRECT-API-NBR Indicates most recent resolution of API or correct assignment.
14 dummy_api_number text 65-72 WB-DUMMY-API-NUMBER 80,000-Range numbers assigned to bores without API numbers as of december 1983 and to bores which are identified later as having been drilled before 1966 and having no API.
15 previous_api_nbr text 92-99 WB-PREVIOUS-API-NBR Indicates the API number previously assigned to the bore, which was later found to be an incorrect assignment.
16 newest_drl_pmt_nbr join text 81-86 WB-NEWEST-DRL-PMT-NBR Indicates date of permit to drill issued most recently in a particular bore.
17 cancel_expire_code text 87 WB-CANCEL-EXPIRE-CODE Indicates whether newest drilling permit was cancelled or expired, as opposed to having been used.
18 except_13a text 89 WB-EXCEPT-13A Y when a Statewide Rule 13(a) exception applies to the bore.
19 fresh_water_flag text 90 WB-FRESH-WATER-FLAG Indicates whether or not well has been converted to a fresh water well.
20 plug_flag text 91 WB-PLUG-FLAG Indicates whether or not well bore has been plugged.
21 completion_data_ind text 100 WB-COMPLETION-DATA-IND Indicates whether or not well bore completion information is on file for a particular well.
22 designation_hb1975_flag text 105 WB-DESIGNATION-HB1975-FLAG How the HB1975 designation was made: A automatically, M manually.
23 water_land_code text 132 WB-WATER-LAND-CODE This data item holds a 1 byte code detailing the water or land location of the wellbore. Offshore - 'o' bay/estuary - 'b' inland waterway - 'i' land - 'l' Water or land location
24 subj_to_14b2_flag text 158 WB-SUBJ-TO-14B2-FLAG This data item is set when all the wells in the wellbore have been SHUT-IN for one year and one well is subject to rule 14b2.
25 orphan_well_hold_flag text 160 WB-ORPHAN-WELL-HOLD-FLAG Y when the bore is on an orphan-well hold.
26 total_bonded_depth integer measured in ft 133-138 WB-TOTAL-BONDED-DEPTH Depth used to compute the operator's plugging bond for this bore, feet.
27 override_est_plug_cost integer measured in USD 139-145 WB-OVERRIDE-EST-PLUG-COST This data item holds the amount that is required to plug a wellbore. This amount takes precedence over any of the computed depth amounts. This data is used in the 14b2 system as the amount required for an individual well bond when a well has been inactive for more than 36 months.
28 shut_in_date text 146-151 WB-SHUT-IN-DATE Month the bore was shut in, as YYYYMM.
29 override_bonded_depth integer measured in ft 152-157 WB-OVERRIDE-BONDED-DEPTH This data item is used to compute the required bond amount for plugging the wellbore. This data item when present is used instead of the total depth or total bonded depth.
30 ex14b2_count integer 103-104 WB-EX14B2-COUNT Number of Statewide Rule 14(b)(2) extensions on file for the bore.
31 designation_effec_date text Effective date of the HB1975 designation.
32 designation_revised_date text Date the HB1975 designation was revised.
33 certification_effec_date text Effective date of the certification.
34 loc_county text 3-5 WB-LOC-COUNTY County of the surveyed location record (record type 13).
35 abstract text 6-11 WB-ABSTRACT Survey abstract number of the surface location.
36 survey text 12-66 WB-SURVEY Name of the original land survey the location falls in.
37 block_number text 67-76 WB-BLOCK-NUMBER Survey block number.
38 section text 77-84 WB-SECTION Survey section.
39 wgs84_latitude numeric measured in deg 133-142 WB-WGS84-LATITUDE Surface latitude in WGS84 decimal degrees, from the WBNEWLOC record. About a sixth of wellbores have no coordinate at all. e.g. 31.6226248
40 wgs84_longitude numeric measured in deg 143-152 WB-WGS84-LONGITUDE Surface longitude in WGS84 decimal degrees, from the WBNEWLOC record. e.g. -95.4713956
41 plane_zone text 158-159 WB-PLANE-ZONE Texas State Plane zone the plane coordinates are in.
42 plane_coordinate_east numeric 160-169 WB-PLANE-COORDINATE-EAST State Plane easting.
43 plane_coordinate_north numeric 170-179 WB-PLANE-COORDINATE-NORTH State Plane northing.
44 verification_flag text 178 WB-VERIFICATION-FLAG Whether the location has been verified: Y verified, N not, C changed.
45 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.

Cement quantity unit 3 values

Read by cement_measurement

The unit the casing record's cement amount is expressed in.

CodeMeans
S Sacks
Y Cubic yards
F Feet

Source: RRC manual WBA091, WBCASE record, WB-CEMENT-MEASUREMENT

Texas county code 277 values

Read by api_county

The three-digit county code RRC uses, which is also the county's FIPS code. `canonical_value` carries the full five-digit state plus county FIPS, so a county joins straight to Census geography. There are 254 Texas counties and 277 codes; the extras are offshore areas and administrative entries.

See all 277 codes

Source: Generated from texas.pdq_gp_county

Elevation reference point 5 values

Read by elevation_code

The point the elevation was measured from. Depths in the same record are measured from this datum, so two wells are not comparable until you know which one each used.

CodeMeans
GL Ground level
DF Derrick floor
KB Kelly bushing
RT Rotary table
GR Ground

Source: RRC manual WBA091, COBOL 88-level values on WB-ELEVATION-CODE

H-15 inactive well test status 9 values

Read by h15_status

Where a 25-year-plus inactive wellbore stands against its H-15 fluid-level or mechanical-integrity test requirement.

CodeMeans
A Approved H-15 filed was approved.
C Compliant Wellbore status has changed and the bore is now compliant.
D Delinquent H-15 is delinquent.
N Filed, not approved H-15 was filed but not approved.
P Pending H-15 approval is pending.
W W-3A extension A W-3A plugging extension was filed for the wellbore.
U UIC H-5 violation UIC H-5 violation.
E No-test project extension H-15 no test project extension.
X W-1X denied Denied W-1X application due to an invalid H-5 test.

Source: RRC manual WBA091, data-item note 'Valid conditions for WB-H15-STATUS'

Oil or gas schedule 2 values

Read by oil_code, h15_oil_gas_code, oil_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.

CodeMeans
O Oil Carried on the oil proration schedule; lease numbers are oil lease numbers.
G Gas Carried on the gas proration schedule; lease numbers are gas well IDs.

Source: PDQ Dump user manual; values confirmed as the complete distinct set in texas.pdq_og_lease_cycle.oil_gas_code

Open hole indicator 1 value

Read by open_hole_code

Marks a producing interval that is open hole rather than perforated casing.

CodeMeans
OH Open hole The interval is completed open hole.

Source: RRC manual WBA091, WBPERF record, WB-OPEN-HOLE-CODE

Water or land location 4 values

Read by water_land_code

Whether the wellbore sits on land, in a bay, in an inland waterway, or offshore.

CodeMeans
L Land
B Bay / estuary
I Inland waterway
O Offshore

Source: RRC manual WBA091, data-item note on WB-WATER-LAND-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.

Full Wellbore Database (ASCII) joins to Wellbore Completion Records on API county and API unique — one row here matches many rows there.

the lease and well identifiers it is completed under

One row per completion identifier on the wellbore. A well with an oil completion and a gas completion has two. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-completions.api_county AND full-wellbore-ascii.api_unique = wellbore-completions.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Form Dates on API county and API unique — one row here matches many rows there.

its form filing dates

The W-2/G-1, drilling completion and plug-back dates recorded against the wellbore, one row per form key. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-form-dates.api_county AND full-wellbore-ascii.api_unique = wellbore-form-dates.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Formation Records on API county and API unique — one row here matches many rows there.

the formations it penetrated

One row per formation top, with the depth it was encountered at. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-formations.api_county AND full-wellbore-ascii.api_unique = wellbore-formations.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Casing Records on API county and API unique — one row here matches many rows there.

its casing strings

One row per casing string set in the hole, with size, depth and cement. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-casing.api_county AND full-wellbore-ascii.api_unique = wellbore-casing.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Perforation Records on API county and API unique — one row here matches many rows there.

its perforated intervals

One row per perforated or open-hole interval the well produces through. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-perforations.api_county AND full-wellbore-ascii.api_unique = wellbore-perforations.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Tubing Records on API county and API unique — one row here matches many rows there.

its tubing strings

One row per tubing string, with the packer depth. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-tubing.api_county AND full-wellbore-ascii.api_unique = wellbore-tubing.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Remarks on API county and API unique — one row here matches many rows there.

the remarks recorded against it

Line-wrapped free text from the district office. Order by the line counter to read a remark whole. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-remarks.api_county AND full-wellbore-ascii.api_unique = wellbore-remarks.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Plugging Records on API county and API unique — one row here matches many rows there.

its plugging record

The W-3 plugging report. Present only for wells that have been plugged. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-plugging.api_county AND full-wellbore-ascii.api_unique = wellbore-plugging.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Drilling Permit Numbers on API county and API unique — one row here matches many rows there.

every drilling permit issued against it

A wellbore usually has several. The root record's newest_drl_pmt_nbr is only the most recent. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-drilling-permit-numbers.api_county AND full-wellbore-ascii.api_unique = wellbore-drilling-permit-numbers.api_unique

Full Wellbore Database (ASCII) joins to Wellbore Well Identifiers on API county and API unique — one row here matches many rows there.

its oil-schedule lease and well numbers

How the wellbore is identified on the oil proration schedule. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-well-ids.api_county AND full-wellbore-ascii.api_unique = wellbore-well-ids.api_unique

Full Wellbore Database (ASCII) joins to Wellbore H-15 Inactive Well Tests on API county and API unique — one row here matches many rows there.

its H-15 inactive well tests

Present where the well has been inactive long enough to require testing. Keyed on the API county and unique number, which is how every record type in WBA091 hangs off its root record.

full-wellbore-ascii.api_county = wellbore-h15-reports.api_county AND full-wellbore-ascii.api_unique = wellbore-h15-reports.api_unique

Full Wellbore Database (ASCII) joins to Drilling Permit Master and Trailer — Daily File (with latitudes and longitudes) on Newest drl pmt number = Permit number — many rows here share a single row there.

was last permitted by

The wellbore root record carries only its most recent permit number. 4,822 of 5,000 sampled permits are somebody's newest permit. For the full permit history use the wellbore's drilling permit numbers instead.

full-wellbore-ascii.newest_drl_pmt_nbr = drilling-permits-daily.permit_no

Full Wellbore Database (ASCII) joins to Drilling Permit Master and Trailer — Daily File (with latitudes and longitudes) on API number — one row here matches many rows there.

permitted this wellbore

The join everyone needs and nobody is told about. Both files write the API number dashed as 42-XXX-XXXXX, so they match directly — 5,000 of 5,000 sampled permits found their wellbore. A wellbore can have many permits over its life, so the same API appears on more than one permit.

drilling-permits-daily.api_number = full-wellbore-ascii.api_number

Full Wellbore Database (ASCII) joins to UIC Database (ASCII) on API county = County number and API unique = API number — one row here matches many rows there.

injects into the wellbore

The UIC file stores only the five-digit unique component of the API number, with the county in a separate column — exactly the two halves the wellbore database keys on. Joining them as a pair matches 748 of 866 permits; the rest carry a placeholder API. This is what puts a disposal well on a map with its depth, casing and plugging status.

uic-database-ascii.cnty_no = full-wellbore-ascii.api_county AND uic-database-ascii.api_no = full-wellbore-ascii.api_unique

Full Wellbore Database (ASCII) joins to Completion Information in Data Format on Newest drl pmt number = Dp number — one row here matches many rows there.

completed the wellbore last permitted as

The completion filing and the wellbore database cannot be joined on the API number without reformatting it — the completion file fuses it to eight digits and the wellbore file splits it in two. The drilling permit number joins them directly instead: 4,625 of 5,000 sampled completions land on a wellbore this way. For the remainder, concatenate the wellbore's api_county and api_unique and match it against the completion's api_no.

completion-information-data-format.dp_no = full-wellbore-ascii.newest_drl_pmt_nbr

Full Wellbore Database (ASCII) joins to PDQ Well Completion Directory on API county = API county code and API unique = API unique number — one row here matches many rows there.

is the wellbore

Both files split the API number the same way, so this is an exact two-column join — 5,000 of 5,000 sampled rows. It is the bridge from lease-based production to the API-numbered wellbore world.

pdq-well-completion.api_county_code = full-wellbore-ascii.api_county AND pdq-well-completion.api_unique_no = full-wellbore-ascii.api_unique

Full Wellbore Database (ASCII) joins to Drilling Permit Master and Trailer — End of Month File (with latitudes and longitudes) on API number — one row here matches many rows there.

permitted this wellbore

Same join as the nightly permit file: dashed API to dashed API, exact.

drilling-permits-monthly.api_number = full-wellbore-ascii.api_number

Where this comes from

Published by
Texas Railroad Commission — the original page
Original format
Fixed-width Columns are byte ranges with no separators, described only in a scanned record layout.
Update cadence
Updated once a week (Weekly. Available by the following Monday.)
RRC download link
GoAnywhere MFT
Record layout manual
Our table
texas.wellbore

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.