Skip to main content

Get Time Tracker

Retrieve the time-tracker view for a Forecast project. The response is a hierarchical structure — sections → operations → activities — together with project-level totals (AFE, P10, P90, variance) derived from the project's last active simulation result.

This endpoint is intended for external reporting tools that need a single read-only snapshot of where a well is against plan: actual hours/days, planned (AFE) hours/days, and the P10/P90 confidence bounds from the Monte Carlo simulation.

GET/api/integrations/external/estimates/time-tracker/{projectId}

Get section / operation / activity breakdown and totals for a project

Path Parameters

NameTypeRequiredDescription
projectIdstring (UUID)The project / estimate identifier (from List Estimates)

Parameters

NameTypeRequiredDescription
companyIdstring (UUID)The company the project belongs to. Used to resolve the well's display name in the response.

Headers

NameValueDescription
apikeyYOUR_API_KEYYour Forecast API authentication key

Response shape

Top-level totals

FieldTypeDescription
wellNamestringDisplay name of the well (resolved via companyId)
wellIdstring (UUID)Well identifier
startTimeISO 8601 stringStart time of the first operation
endTimeISO 8601 stringFinish time of the last operation
totalAFEnumber (days)Sum of operation AFE hours, divided by 24 and rounded to 2 decimals
totalP10number (days)P10 of cumulative duration from the active simulation, in days
totalP90number (days)P90 of cumulative duration from the active simulation, in days
totalVariancenumber (hours)Sum across activities of actual − afe where actual is set; positive = over plan
sectionsarraySections, each containing its operations and activities (see below)

Section object

FieldTypeDescription
sectionIdstring (UUID)Section identifier
projectSectionIdstring (UUID)Project-scoped section identifier
sectionNamestringDisplay name (e.g. 26" Surface)
operationsarrayOperations belonging to this section

Operation object

Each entry under operations describes a single planned operation. Activity-level identifiers (sectionsOperationActivityId, activityCode, operationCode, subOperationCode) are stripped at this level — they live on the activities themselves.

FieldTypeDescription
timeTrackerItemIdstring (UUID)Operation identifier — use this as :taskId in Update Time Tracker Task
originIdstringSource identifier from the simulation payload
parentIdstring | nullnull for an operation (operations have no parent)
namestringOperation display name
statusstringStatus as recorded in the time tracker (e.g. completed, in_progress)
start / finishISO 8601 stringOperation start and finish
estimatenumber | nullEditable estimate in hours
actualnumber | nullRecorded actual in hours
afenumberAFE-budgeted duration in hours
depthFrom / depthTonumberPlanned depth range for the operation
actualDepthnumberActual depth reached
plannedDepthnumberPlanned depth at end of operation
nptnumber | nullNon-productive time in hours
wownumber | nullWaiting-on-weather time in hours
sectionsOperationobject | null{ sectionsOperationId, name } — reference into the sections-data-structure catalog
activitiesarrayActivities for this operation

Activity object

FieldTypeDescription
timeTrackerItemIdstring (UUID)Activity identifier — use this as :taskId in Update Time Tracker Task
originIdstringSource identifier from the simulation payload
parentIdstring (UUID)Parent operation's timeTrackerItemId
namestringActivity display name
statusstringStatus as recorded in the time tracker
estimatenumber | nullEditable estimate in hours
actualnumber | nullRecorded actual in hours
afenumberAFE-budgeted duration in hours
actualDepth / plannedDepthnumberActual / planned depth at end of activity
depthTonumberPlanned end depth
nptnumber | nullNon-productive time in hours
wownumber | nullWaiting-on-weather time in hours
activitystring | nullActivity classification code
sectionsOperationActivityobject | null{ sectionsOperationActivityId, name } — reference into the sections-data-structure catalog

The fields sectionsOperationActivityId, activityCode, operationCode, subOperationCode, start and finish are present in the underlying record but are intentionally omitted from the response at the activity level — start and finish are only meaningful on the parent operation.

Notes

  • companyId is effectively required. It is a query parameter, but it is consumed when resolving the well's display name. Calling without it will fail to look up the well.
  • No active simulation → empty object. If the project has never had a successful simulation, the endpoint returns {} with HTTP 200. Treat the absence of wellName as the empty signal.
  • Units. totalAFE, totalP10, and totalP90 are in days (the underlying simulation values are in hours and divided by 24 server-side). estimate, actual, afe, npt, wow, and totalVariance are in hours.
  • Variance sign. Positive totalVariance = activities ran longer than AFE. Activities with actual === null are skipped from the variance sum.
  • The P10/P90 figures come from the last active simulation result for the project. If you re-run the simulation, the totals can change without any data being patched.