CommoVision

See the future in real time

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

ColumnTypeNullableDescription
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)
ColumnTypeDescription
wa_number string
North Dakota (1 column)
ColumnTypeDescription
file_no int32
Utah (2 columns)
ColumnTypeDescription
construct_number int32
citing_type string

How these numbers are built is on methodology; the machine twin of this page is data-dictionary.json.