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 completion packet, published nightly. Each packet is a header — operator, lease, field, well, API number, dates, depths, the initial potential test — followed by repeating rows for casing strings, formation tops, production intervals and the materials pumped during stimulation.

EZRRC parses the packet into a header table plus four child tables and publishes each child separately, so the stimulation-materials rows — the closest thing Texas has to a public frac record inside RRC data — are directly queryable.

What you can do with it

See a well's initial potential test: oil, gas and water rates, choke size, gravity and calculated 24-hour rate.

Find recently completed wells by spud, work-completed or completion date, and track how long operators are taking between spud and first production.

Pull the stimulation record — depths treated and materials used — and the perforated intervals, then join to the wellbore database for the mechanical history of the same hole.

Gotchas

This file writes the API number as eight fused digits (county then unique) with no state prefix and no dashes, while the permit and wellbore files write it as 42-XXX-XXXXX. They do not join without reformatting.

Numeric measurements are stored as text exactly as filed, so depths and rates can contain blanks, ranges and notes. Cast, do not assume.

The packet key is the tracking number plus the packet id; the API number is not unique because a wellbore can be completed and recompleted many times.

Record layout

101 columns.

cmpl_akm_data 8 columns

# Column Type RRC name Meaning Lookup
1 tracking_no key join text The completion packet's RRC tracking number.
2 packet_id key join text Identifier of the completion packet this row belongs to.
3 parent_id key text Identifier of the G-1 or W-2 record this row hangs off.
4 row_no key text Sequence number of this row within its parent record. Part of the key.
5 from_depth text measured in ft Top of the treated interval, feet.
6 to_depth text measured in ft Bottom of the treated interval, feet.
7 material_used text Free-text description of the material pumped — acid, sand, water, gel.
8 amt_material_process_code text What was done to the interval. 'Fracture' identifies a frac job. Stored decoded from the RRC material/process code.

cmpl_casing_data 17 columns

# Column Type RRC name Meaning Lookup
1 tracking_no key join text The completion packet's RRC tracking number.
2 packet_id key join text Identifier of the completion packet this row belongs to.
3 parent_id key text Identifier of the G-1 or W-2 record this row hangs off.
4 row_no key text Sequence number of this row within its parent record. Part of the key.
5 casing_size text Casing outside diameter, inches, as filed.
6 weight_lb_per_ft text measured in lb/ft Casing weight, pounds per foot.
7 weight_lb_per_ft2 text measured in lb/ft Second casing weight for a tapered string, pounds per foot.
8 depth_set text measured in ft Depth the string was set to, feet.
9 multistage_tool_depth text measured in ft Multi-stage cementing tool depth, feet.
10 type_of_cement text Cement class or type used.
11 amount_of_cement text Amount of cement pumped, sacks.
12 hole_size text Hole diameter, inches.
13 top_of_cement text measured in ft Reported top of cement behind the string, feet.
14 slurry_volume text Slurry volume pumped.
15 casing_type_code text Which string this is — conductor, surface, intermediate, production or tapered production. Stored decoded.
16 multistage_shoe_depth text measured in ft Multi-stage shoe depth, feet.
17 top_cement_determine_code text How the top of cement was established. 'Calculation' means it was computed from slurry volume, not measured.

cmpl_formation_data 8 columns

# Column Type RRC name Meaning Lookup
1 tracking_no key join text The completion packet's RRC tracking number.
2 packet_id key join text Identifier of the completion packet this row belongs to.
3 parent_id key text Identifier of the G-1 or W-2 record this row hangs off.
4 row_no key text Sequence number of this row within its parent record. Part of the key.
5 formation text Formation name as filed.
6 depth text measured in ft Depth to the formation, feet.
7 depth_md text measured in ft Measured depth to the formation, feet.
8 encountered text Whether the formation was actually encountered.

cmpl_production_interval_data 9 columns

# Column Type RRC name Meaning Lookup
1 tracking_no key join text The completion packet's RRC tracking number.
2 packet_id key join text Identifier of the completion packet this row belongs to.
3 parent_id key text Identifier of the G-1 or W-2 record this row hangs off.
4 row_no key text Sequence number of this row within its parent record. Part of the key.
5 from_depth text measured in ft Top of the producing interval, feet.
6 to_depth text measured in ft Bottom of the producing interval, feet.
7 bottom_hole_label text Bottomhole label, for wells with more than one bottomhole location.
8 lateral_label text Lateral label, for multi-lateral horizontal wells.
9 open_hole text Y when the interval is open hole rather than perforated.

well_completions 59 columns

# Column Type RRC name Meaning Lookup
1 file_batch_date date The nightly batch this packet arrived in. RRC publishes completions as one zip per day, so this is the closest thing to a filing timestamp.
2 tracking_no key join text The completion packet's RRC tracking number.
3 packet_id key join text Identifier of the completion packet this row belongs to.
4 record_id text Identifier of the G-1 or W-2 record inside the packet.
5 district text RRC district the record belongs to, written the way RRC prints it (01-06, 6E, 7B, 7C, 08, 8A, 09, 10). e.g. 01 RRC district (printed designation)
6 county_code text County code as this file carries it. e.g. 283 Texas county code
7 county_name text County name. e.g. La Salle
8 lease_no join text RRC lease number the completion is on.
9 lease_name text Lease name as filed.
10 api_no join text API number, eight digits (county + unique), without the state prefix or dashes. e.g. 28332298
11 dp_no join text Drilling permit number the completion reports against.
12 well_type text Raw RRC well type code: producing, shut-in, active UIC or shut-in UIC. Completion well type
13 well_type_txt text The decoded well type.
14 well_no text Well number within the lease, as the operator designates it.
15 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. e.g. 39744500
16 field_name text Field name.
17 well_orientation text Horizontal, Directional, Vertical, Sidetrack or Unknown, decoded from the packet's wellbore profile code.
18 total_acres text measured in acres Acres in the lease as stated on the completion report.
19 lat text Latitude in WHOLE DEGREES only. The completion feed truncates the coordinate, so this is useless for mapping — join to the wellbore dataset on API number for a real WGS84 position.
20 lon text Longitude in WHOLE DEGREES only. Truncated in the source feed; use the wellbore dataset's coordinates instead.
21 submit_date date Date the operator submitted the packet.
22 approve_date date Date RRC approved it.
23 spud_date date Date the well was spudded.
24 work_commenced_date date Date the completion work started.
25 work_completed_date date Date the completion work finished.
26 completion_type text Raw RRC completion type code. Completion type
27 completion_type_txt text The decoded completion type: new well, deepening, plug back, sidetrack, horizontal, reentry or other.
28 purpose_of_filing text Raw RRC filing purpose code. Completion filing purpose
29 purpose_of_filing_txt text The decoded filing purpose.
30 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.
31 operator_name text Operator name as carried in this file. Names drift between filings — join on the operator number, never on the name.
32 operator_address text Operator address, assembled from the P-5 file at load time.
33 operator_phone text Operator phone, from the P-5 file.
34 total_depth text measured in ft Total depth, feet. Copied from measured depth.
35 measured_depth text measured in ft Measured depth, feet — along the hole, not straight down.
36 vertical_depth text measured in ft True vertical depth, feet. For a horizontal well this is far less than measured depth.
37 date_of_test date Date of the reported production test.
38 test_oil_prod text measured in bbl Oil produced during the test, barrels.
39 test_gas_prod text measured in MCF Gas produced during the test, MCF.
40 water_prod text measured in bbl Water produced during the test, barrels.
41 choke_size text measured in 1/64 in Choke size used during the test, 64ths of an inch.
42 gravity_dry_gas text Specific gravity of the dry gas.
43 gravity_hydrocarbon text Specific gravity of the hydrocarbon liquid.
44 gravity_mixture text Specific gravity of the mixture.
45 calc_oil_gravity text measured in API Calculated oil gravity, degrees API.
46 calc_24hr_rate_oil text measured in bbl/d Calculated 24-hour oil rate, barrels per day.
47 calc_gas text measured in MCF/d Calculated gas rate, MCF per day.
48 calc_casing_press text measured in psi Calculated casing pressure, psi.
49 calc_water text measured in bbl/d Calculated water rate, barrels per day.
50 gas_mcf text measured in MCF Gas volume from the G-1 measurement record, MCF.
51 frac_op_type text Stimulation process on the LAST material record of the packet — 'Fracture' is the nearest thing RRC publishes to a frac flag.
52 frac_material text Material used in that last stimulation record.
53 frac_from_depth text measured in ft Top of the interval treated in that last stimulation record, feet.
54 frac_to_depth text measured in ft Bottom of the interval treated in that last stimulation record, feet.
55 has_actuation_valve text Y when a surface actuation valve is installed.
56 other_permit_desc text Description of any other permit referenced on the packet.
57 other_permit_date date Date of that other permit.
58 other_permit_no text Number of that other permit.
59 cmpl_recmpl_date date Completion or recompletion date declared on the packet.

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.

Completion filing purpose 7 values

Read by purpose_of_filing

Why the G-1 or W-2 was filed. 'Well Record Only' matters: those filings carry no production test.

CodeMeans
1 Initial Potential The first completion report for the interval.
2 Retest A later test of the same completion.
3 Reclass Oil to Gas Reclassification from an oil well to a gas well.
4 Reclass Gas to Oil Reclassification from a gas well to an oil well.
5 Reclass Injection to Producing Converted from injection back to production.
6 Reclass Producing to Injection Converted from production to injection.
7 Well Record Only Filed for the record; carries no production test.

Source: OilGasDataProcessing process_completions.translate_filing_purpose (CMPL packet field 11)

Completion type 7 values

Read by completion_type

What physical work produced this completion.

CodeMeans
1 New Well A newly drilled well.
2 Deepening The existing hole was deepened.
3 Plug Back The lower hole was plugged and a higher interval completed.
4 Sidetrack A new hole was drilled out of the side of the old one.
5 Horizontal A horizontal lateral.
6 Reentry An existing wellbore was re-entered.
7 Other Anything else; see the packet remarks.

Source: OilGasDataProcessing process_completions.translate_completion_type (CMPL packet field 12)

Completion well type 4 values

Read by well_type

Whether the completion is producing, shut in, or an injection well.

CodeMeans
1 Producing Currently producing.
2 Shut-In Producer A producer that is shut in.
3 Active UIC An active injection or disposal well.
4 Shut-In UIC An injection or disposal well that is shut in.

Source: OilGasDataProcessing process_completions.translate_well_type (CMPL packet field 10)

Texas county code 277 values

Read by county_code

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

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.

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.

Completion Information in Data Format joins to Full Wellbore Database (ASCII) on Dp number = Newest drl pmt number — many rows here share a single row 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

Completion Information in Data Format joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.

completed by

The completing operator's P-5 number. 4,504 of 5,000 sampled completions resolve; the rest name organizations that predate the current directory.

completion-information-data-format.operator_no = p5-organization-ascii.id

Completion Information in Data Format joins to Completion Casing Records on Tracking number and Packet ID — one row here matches many rows there.

the casing reported on the filing

Repeating casing rows of the completion packet: size, depth set, hole size, cement type and amount. Keyed on the packet's tracking number and packet id, which is the completion file's own hierarchy.

completion-information-data-format.tracking_no = completion-casing-records.tracking_no AND completion-information-data-format.packet_id = completion-casing-records.packet_id

Completion Information in Data Format joins to Completion Formation Records on Tracking number and Packet ID — one row here matches many rows there.

the formation tops reported on the filing

Repeating formation rows of the completion packet. Keyed on the packet's tracking number and packet id, which is the completion file's own hierarchy.

completion-information-data-format.tracking_no = completion-formation-records.tracking_no AND completion-information-data-format.packet_id = completion-formation-records.packet_id

Completion Information in Data Format joins to Completion Production Intervals on Tracking number and Packet ID — one row here matches many rows there.

the intervals it produces through

Repeating production-interval rows, including the lateral label that separates the branches of a multi-lateral well. Keyed on the packet's tracking number and packet id, which is the completion file's own hierarchy.

completion-information-data-format.tracking_no = completion-production-intervals.tracking_no AND completion-information-data-format.packet_id = completion-production-intervals.packet_id

Completion Information in Data Format joins to Completion Stimulation Materials on Tracking number and Packet ID — one row here matches many rows there.

what was pumped into it

Repeating material rows: the interval treated and the material used. Keyed on the packet's tracking number and packet id, which is the completion file's own hierarchy.

completion-information-data-format.tracking_no = completion-stimulation-materials.tracking_no AND completion-information-data-format.packet_id = completion-stimulation-materials.packet_id

Completion Information in Data Format joins to Wellbore Drilling Permit Numbers on Dp number = Permit number — rows can match many rows in both directions.

was drilled under a permit recorded on

The wellbore file's full permit list. 4,941 of 5,000 sampled completions match, which is the most complete route from a completion filing to the wellbore it belongs to.

completion-information-data-format.dp_no = wellbore-drilling-permit-numbers.permit_number

Completion Information in Data Format joins to Drilling Permit Master and Trailer — Daily File (with latitudes and longitudes) on Dp number = Permit number — many rows here share a single row there.

was filed under drilling permit

The permit the completion reports as its authority. The permit file only goes back as far as upstream has loaded it, so older completions will not find their permit here.

completion-information-data-format.dp_no = drilling-permits-daily.permit_no

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 every night (Nightly.)
RRC download link
GoAnywhere MFT
Record layout manual
Our table
texas.well_completions

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.