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
Regions: Arkansas, British Columbia, Colorado, Gulf of Mexico, Kansas, Louisiana, Michigan, Montana, North Dakota, New Mexico, Ohio, Oklahoma, Pennsylvania, Pacific OCS, Texas, Utah, West Virginia, Wyoming
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, where several completion records tie at the deciding date, so no single completion is evidenced, and where a well carries several completion intervals and the source does not link the surveyed hole to one of them. |
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, ...). Where the source numbers a well's laterals, the number is the source's own label, so a well can show LAT2 without a LAT1; elsewhere every lateral reads LAT1. |
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 or we could not read it, or where we set aside the depths it printed because they are impossible for the hole or inconsistent with the survey's own angles. 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 | The acquisition path that supplied this station's reading: a regulator bulk data feed, or a filing we parsed (a completion packet or a well file). Values are per-region path names. |
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 stands unless the source's own records indicate otherwise. 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. A record shown to measure a different hole than the leg's canonical records never joins the canonical path (all its stations False). 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.
British Columbia (1 column)
| Column | Type | Description |
|---|---|---|
wa_number |
string |
North Dakota (1 column)
| Column | Type | Description |
|---|---|---|
file_no |
int32 |
Utah (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.