Drilling Permit Master and Trailer — End of Month File (with latitudes and longitudes)
Queryable Fixed-width Has coordinates
The same permits as the nightly file, cut once a month as a stable snapshot.
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 end-of-month cut of the OGA049M permit file. Identical layout to the daily file; the difference is that it is a fixed, citable snapshot taken on the last day of the month rather than a moving target.
Use it when a number has to still be the same number next quarter — monthly permit counts, year-over-year comparisons, anything that goes in a report someone will check.
What you can do with it
Build a stable monthly permit time series, and reconcile against the Commission's own published counts, which are cut from this file.
Count permits by operator, county or field for any month since the file begins, and watch the leading indicator everyone in the industry watches — a permit today is a rig in weeks and a completion in months.
Map permitted surface and bottomhole locations, measure lateral length from the two coordinate pairs, and separate horizontal from vertical activity.
Join to the P-5 organization directory on the operator number to see whether the permitting company's own status is active, and to the wellbore database on the API number to find out whether the hole was ever actually drilled.
Gotchas
Because it is a month-end cut, a permit issued on the 30th and amended on the 2nd appears in its pre-amendment state. The nightly file is the one that reflects today.
county_code holds the county NAME, not a numeric code. RRC's own layout calls the field a code and the file contains 'Midland'. This is the single most common way a permit query silently returns nothing.
application_type, application_well_code and horizontal_well_flag are decoded on the way into the warehouse, so they hold RRC's words rather than RRC's codes. 'OIL ' keeps a trailing space from the fixed-width original.
Roughly 3% of permits have no surface coordinate at all. A spatial export silently cannot carry those rows, so EZRRC reports how many were dropped — Midland County is 9,548 permits but only 9,187 points.
A permit is an application, not a well. Many are never drilled, and one wellbore accumulates several over its life.
Record layout
29 columns. Byte positions are 1-based and come from the RRC record layout, so you can check our decoding against the original file yourself.
permits
29 columns
| # | Column | Type | Bytes | RRC name | Meaning | Lookup |
|---|---|---|---|---|---|---|
| 1 |
source_file
|
text | — | — | The RRC file this row was parsed from, as directory/filename. The monthly files overlap, so this tells you which one last wrote the row. | — |
| 2 |
received_date
|
date | 122-129 | — | Date RRC received the application. | — |
| 3 |
amended_date
|
date | 138-145 | — | Date the permit was amended, if it ever was. | — |
| 4 |
issue_date
|
date | 130-137 | — | Date RRC issued the permit. This is the date the industry counts. | — |
| 5 |
status_no
key
|
integer | 3-9 | — | RRC's status (permit application) number. With sequence_no it is the primary key of this table. | — |
| 6 |
sequence_no
key
|
integer | 10-11 | — | Sequence within the status number, for amended and re-issued permits. | — |
| 7 |
county_code
join
|
text | 12-14 | — | County name, despite the column name. The pipeline resolves the three-digit code against national.us_county on load and stores the resolved name, so filter on 'MIDLAND', not on '329'. e.g. Reeves | — |
| 8 |
api_number
join
|
text | 503-510 | — | API number formatted 42-CCC-NNNNN. Blank on permits that never got one — an application withdrawn before drilling has no API. e.g. 42-389-36336 | — |
| 9 |
permit_no
join
|
integer | 3-9 | — | The permit number, with leading zeros stripped. e.g. 862449 | — |
| 10 |
operator_no
join
|
integer | 60-65 | — | 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. e.g. 166150 | — |
| 11 |
operator_name
|
text | 67-98 | — | Operator name as carried in this file. Names drift between filings — join on the operator number, never on the name. | — |
| 12 |
operator_add1
|
text | 60-65 | — | Operator address line 1, copied in from the P-5 file at load time. | — |
| 13 |
operator_add2
|
text | 60-65 | — | Operator address line 2, copied in from the P-5 file at load time. | — |
| 14 |
operator_city
|
text | 60-65 | — | Operator city, copied in from the P-5 file at load time. | — |
| 15 |
operator_state
|
text | 60-65 | — | Operator state, copied in from the P-5 file at load time. | — |
| 16 |
operator_zip
|
text | 60-65 | — | Operator ZIP, copied in from the P-5 file at load time. | — |
| 17 |
operator_phone
|
text | 60-65 | — | Operator phone, copied in from the P-5 file at load time. | — |
| 18 |
lease_name
|
text | 15-46 | — | Lease name as filed. | — |
| 19 |
well_no
|
text | 49-54 | — | Well number within the lease, as the operator designates it. | — |
| 20 |
horizontal_well_flag
|
text | 494 | — | 'Horizontal' or 'Vertical'. Derived from a one-byte Y/N flag on the permit master: only 'Y' means horizontal. e.g. Horizontal | — |
| 21 |
application_type
|
text | 66-67 | — | What the operator asked to do — drill, deepen, plug back, re-enter and so on. Stored decoded; the RRC codes behind it are in the drilling permit application type code set. e.g. DRILL | — |
| 22 |
application_well_code
|
text | 11 | — | What the well is for. Stored decoded; the RRC codes behind it are in the permit well code set. Note that oil wells carry a trailing space. e.g. OIL | — |
| 23 |
surface_latitude
|
numeric measured in deg | — | — | Surface hole latitude, WGS84 decimal degrees, from the '14' GPS trailer record. Null on permits filed before the trailer existed. e.g. 31.4021874 | — |
| 24 |
surface_longitude
|
numeric measured in deg | — | — | Surface hole longitude, WGS84 decimal degrees, from the '14' trailer record. e.g. -103.5112090 | — |
| 25 |
bottom_latitude
|
numeric measured in deg | — | — | Bottomhole latitude, WGS84 decimal degrees, from the '15' GPS trailer record. Only populated for directional and horizontal permits. | — |
| 26 |
bottom_longitude
|
numeric measured in deg | — | — | Bottomhole longitude, WGS84 decimal degrees, from the '15' trailer record. | — |
| 27 |
total_depth
|
bigint measured in ft | 55-59 | — | Total depth the permit authorises, in feet. e.g. 11000 | — |
| 28 |
field_no
join
|
integer | 3-10 | — | 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. 41911500 | — |
| 29 |
field_name
|
text | 3-10 | — | Field 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.
Drilling Permit Master and Trailer — End of Month File (with latitudes and longitudes) joins to Full Wellbore Database (ASCII) on API number — many rows here share a single row 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
Drilling Permit Master and Trailer — End of Month File (with latitudes and longitudes) joins to P-5 Organization (ASCII) on Operator number = ID — many rows here share a single row there.
permitted by
The permit's P-5 operator number, resolved to the organization.
drilling-permits-monthly.operator_no = p5-organization-ascii.id
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 month (Monthly. Last day of the month.)
- RRC download link
- GoAnywhere MFT
- Record layout manuals
- Our table
texas.permits
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.