directional_surveys
Full wellbore trajectories: one row per survey station (a measured-depth reading along a wellbore leg), with inclination, azimuth, true vertical depth, and position in WGS84. Every filed reading is kept: planned (proposed) surveys as well as as-drilled, and superseded filings alongside the latest, so you can compare plan against actual. For the current as-drilled trajectory, filter is_proposed = false and is_latest_version = true. This is the table for accurate lateral placement, well spacing, and landing-zone work.
Access tier: portal
Portal. These rows are well-level or producing-unit-level data, or our modelled output at cohort or grid grain. They open with a Portal, Pro or Enterprise plan. The website shows aggregates built from them, never the rows.
Primary key: station_id
Region codes: ar, bc, co, gom, la, mi, mt, nd, nm, oh, ok, pa, pacific, tx, ut, wv, wy
Columns
| Column | Type | Nullable | Description |
|---|---|---|---|
station_id |
string | no | Globally unique station identifier (opaque string), this table's primary key. Distinct filings and plan-vs-as-drilled readings of the same well/leg/depth coexist as separate rows; for the canonical trajectory filter is_proposed = false AND is_latest_version = true. Never parse substrings out of it. |
well_id |
string | no | Join key to the well register. |
completion_id |
string | yes | Join key to the completions table. Links the survey leg to its completion event: the vertical hole and first lateral to the initial completion; later laterals and sidetracks to recompletions by date order. NULL where the leg matches no completion, and where several completion records tie at the deciding date, so no single completion is evidenced. |
station_sequence |
int32 | no | Row number of the station within its (well, leg, filing), ordered by measured depth; starts at 1. A filing that carries both a proposed and an as-drilled survey numbers each set separately. |
leg |
string | no | Wellbore leg code (VERT, DIR, LAT1, STK2, ...). Within a single multi-survey filing, LAT1/LAT2 distinguish the laterals; across separate filings the same lateral defaults back to LAT1 unless the operator labeled it. |
leg_type |
string | yes | The leg's classified type: vertical, directional, lateral, or sidetrack.
Values: vertical · directional · lateral · sidetrack. |
leg_sequence |
int32 | yes | Numeric sequence of the leg within its type (LAT1 = 1, LAT2 = 2; vertical/directional legs = 1). |
md |
float64 | no | Measured depth in feet. The station ordering key. |
inclination |
float64 | yes | Wellbore deviation from vertical in degrees (0 = vertical, 90 = horizontal). |
azimuth |
float64 | yes | Compass bearing in degrees (0 = north, 90 = east). |
tvd |
float64 | yes | True vertical depth in feet. Source-provided where tvd_source = 'reported'; computed by the minimum-curvature method from measured depth, inclination and azimuth where 'min_curvature'. |
tvd_source |
string | yes | Where this station's true vertical depth came from: reported = the source filing carried it; min_curvature = we computed it by the minimum-curvature method from measured depth, inclination and azimuth where the source omitted it. NULL exactly when tvd is NULL. Filter tvd_source = 'reported' for source-reported depths only. This is the per-station flag; the well-level tvd_source on the well register separately records which source tier supplied the well's headline TVD.
Values: reported · min_curvature. |
position_source |
string | yes | Where this station's published position (latitude/longitude) came from: reported = the source filing carried the position (printed offsets from the surface location, or absolute coordinates we convert to WGS84); identity_inferred = the filing printed the position values but did not label the columns: we identified the north/south, east/west and vertical-section columns from the survey's own reference azimuth and internal geometry; min_curvature = we computed the position by the minimum-curvature method from measured depth, inclination and azimuth. NULL exactly when latitude/longitude are NULL. Filter position_source = 'reported' for source-asserted positions only.
Values: reported · identity_inferred · min_curvature. |
latitude |
float64 | yes | Station latitude (WGS84). See position_source for whether it derives from a source-carried position or from our minimum-curvature computation. |
longitude |
float64 | yes | Station longitude (WGS84). See position_source for whether it derives from a source-carried position or from our minimum-curvature computation. |
doc_id |
string | no | Identifier of the source document this station was parsed from (opaque string). Stable, the same filing always yields the same id. Use source + source_id for the agency-side handle. |
source_id |
string | yes | The agency-side handle of the source filing (e.g. the regulator's bulk filing id or document image id). Unique within a given source. |
source |
string | yes | Which acquisition path the survey came from: daily_bulk (the regulator's bulk data feed) or completion_packet (PDFs from well completion packets). |
survey_date |
date | yes | Date of the survey: the reported survey interval's end where the source publishes one, else the filing's header date (for proposed filings, the plan's own date). Used as the tie-break between overlapping surveys of one wellbore of the same kind that reached the same depth (see is_latest_version). |
sensor_type |
string | yes | Survey sensor type: mwd = measurement-while-drilling (real-time, lower accuracy at depth); gyro = gyroscopic (higher accuracy, typically run after drilling); other = catch-all. NULL where the source doesn't say.
Values: mwd · gyro · other. |
is_proposed |
bool | no | True if the survey is a pre-drill plan (a proposed trajectory); false if it is a post-drill as-drilled measurement. Never NULL: where the source filing does not label plan vs as-drilled, we resolve the value from that source's own filing semantics (a source whose unlabeled filings are as-drilled surveys reads false) and, where it is decisive, the survey's measured geometry; an explicit source label always stands. Pre-drill plans are kept so you can see the plan-vs-as-drilled delta and the full version history of a wellbore. For canonical bottom-hole position use is_proposed = false AND is_latest_version = true. |
is_latest_version |
bool | no | True for the stations that make up the leg's canonical path: where several records of one wellbore overlap, a full position survey outranks a summary or partial record of the same hole (a certification page, a duplicate copy, an inclination-only report); among records of the same kind, the one that reached deepest wins the shared interval (then the newest, then the one with the most stations; remaining ties are broken deterministically), and a shallower record keeps only the stations beyond every deeper one's reach. Latest does NOT imply as-drilled - a pre-drill plan is ranked among plans; combine with is_proposed = false for canonical as-drilled positions. |
Region-specific columns
Extra columns a single region's source adds.
bc (1 column)
| Column | Type | Description |
|---|---|---|
wa_number |
string |
nd (1 column)
| Column | Type | Description |
|---|---|---|
file_no |
int32 |
ut (2 columns)
| Column | Type | Description |
|---|---|---|
construct_number |
int32 | |
citing_type |
string |
How these numbers are built is on methodology; the machine twin of this page is data-dictionary.json.