Completion Information in Data Format
Queryable Fixed-width Has coordinates
Forms G-1 and W-2: the filings that turn a drilled hole into a producing well.
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 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.
| Code | Means |
|---|---|
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.
| Code | Means |
|---|---|
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.
| Code | Means |
|---|---|
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.
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.
| 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.
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.