---
title: Geothermal Profile
slug: geothermal-profile
docTags: 
createdAt: 2026-05-29T00:16:10.879Z
---

The Geothermal Profile table allows optional overrides of the default geothermal profile (surface temperature to the [Wellbore Formation](docId\:Z0gzMEd5eNInBJJ5Bbcrp) initial datum temperature) that ProdX uses during temperature modeling. Insert multiple rows per well to establish a multi-point geothermal profile.

If a point with TVD = 0 exists for a well, it overrides the default surface temperature from the Fluid Temperature Modeling Settings in ProdX. If a point with TVD equal to the formation depth exists, it overrides the formation temperature from the formation table.

The unique constraint on geothermal profile entries is **sourceWellId + sourceId**.

| **Variable**      | **Data Type** | **Unit of Measure** | **Is Nullable?** | **Default Value** | **Description**                                                                                                                                 |
| ----------------- | ------------- | ------------------- | ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| sourceId          | String        | -                   | No               | -                 | Unique identifier of the entry, to enable upserts                                                                                               |
| sourceWellId      | String        | -                   | No               | -                 | Source ID for the well<br /><br />**From WellView:** wvwellheader table, idwell column<br />**From OpenWells:** cd\_well table, well\_id column |
| trueVerticalDepth | Double        | ft                  | No               | -                 | True vertical depth of the geothermal profile point                                                                                             |
| temperature       | Double        | degF                | No               | -                 | Temperature at the TVD                                                                                                                          |

***

# Data Integrity Checks

| **Condition**                                 | **Response**                              |
| --------------------------------------------- | ----------------------------------------- |
| sourceWellId does not exist in the Well table | Record Rejected and current batch aborted |
| Any non-nullable field is NULL                | Record Rejected                           |

:::hint{type="warning"}
If any record in a POST references an unknown **sourceWellId**, the whole batch is aborted — records earlier in the payload are not committed.
:::

***

# Common Error Messages

| **API**              | **Scenario**         | **Error Response**                                           |
| -------------------- | -------------------- | ------------------------------------------------------------ |
| Add / Upsert profile | Unknown sourceWellId | Well with source id xxx was not found, current batch aborted |
