Skip to main content

Production Taxes Overview

This document provides a detailed overview of production-taxes in an economic model. The main property is data, which contains a state and a rows array. Each row in the array defines a single production tax entry with its classification, timing criteria, and rate information.

Example Response​

{
"id": "6463e9e105bfb500218f828e",
"copiedFrom": null,
"name": "Production Taxes Demo",
"tags": [],
"unique": false,
"createdBy": "6283eac6241df8001331f6a3",
"lastUpdatedBy": "6283eac6241df8001331f6a3",
"createdAt": "2023-05-16T20:38:57.818Z",
"updatedAt": "2023-05-16T23:20:25.827Z",
"data": {
"state": "texas",
"rows": [
{
"key": "oil",
"category": "severance_tax",
"criteria": "entire_well_life",
"period": ["Flat"],
"value": [4.6],
"unit": "pct_of_revenue"
},
{
"key": "gas",
"category": "severance_tax",
"criteria": "dates",
"period": ["01/2022", "01/2023"],
"value": [7.5, 0],
"unit": "pct_of_revenue",
"shrinkageCondition": "unshrunk",
"calculation": "nri",
"escalation": "64629fb11cb0cc0021eaaa38"
},
{
"key": "ngl",
"category": "severance_tax",
"criteria": "oil_rate",
"period": [3, 6, 9],
"value": [7.5, 0, 0],
"unit": "dollar_per_bbl",
"shrinkageCondition": "unshrunk",
"calculation": "nri",
"rateType": "gross_well_head",
"rateRowsCalculationMethod": "non_monotonic"
},
{
"key": "ad_valorem_tax",
"category": "ad_val_tax",
"criteria": "offset_to_fpd",
"period": [20],
"value": [100],
"unit": "dollar_per_boe",
"calculation": "nri",
"deductSeveranceTax": false
},
{
"key": "ad_valorem_tax",
"category": "pa_if_h_2021",
"criteria": "offset_to_fpd"
}
]
}
}

Data Structure​

  • data: (required) An object containing the state and rows properties that define all production tax entries for the model.

data​

  • state: (required) A string representing the US state whose tax rules apply. See state for valid values.
  • rows: (required) An array of production tax row objects. Maximum 5000 rows. Each object represents one tax entry. See rows for the full field list and constraints.

rows​

Each element in the rows array is an object with the following properties:

Required fields​

  • key: (required) The production stream this row applies to. See key for valid values and the key → category constraint.
  • category: (required) The tax category. Valid values depend on key. See category and the key → category constraint.
  • criteria: (required) The timing or rate basis used to define the tax schedule. Valid values depend on category. See criteria and the category → criteria constraints.
  • period: (required for severance_tax and ad_val_tax categories) An array whose element type and valid range depend on criteria. Must not be provided for pa_if_* categories. See period for details.
  • value: (required for severance_tax and ad_val_tax categories) An array of numbers that must match the length of period. Must not be provided for pa_if_* categories. See value.
  • unit: (required for severance_tax and ad_val_tax categories) The unit of measurement for the value entries. Valid values depend on key. Must not be provided for pa_if_* categories. See unit for valid values and the key → unit constraint.

Optional fields​

  • description: (optional) A free-text description of the row. Maximum 200 characters.
  • shrinkageCondition: (optional) Whether volumes are measured before or after shrinkage. Possible values are "shrunk" or "unshrunk". Required when unit is dollar_per_bbl or dollar_per_mcf. Not allowed when unit is dollar_per_month, pct_of_revenue, or dollar_per_boe.
  • escalation: (optional) An escalation model ID (example: "6463e9e105bfb500218f828e") or "none".
  • calculation: (optional) The working interest basis for the tax. See calculation for valid values.
  • deductSeveranceTax: (optional) Boolean. When true, severance tax is deducted before applying this row's ad valorem rate. Not allowed when category is severance_tax.
  • rateType: (optional) The rate type. See rateType. Only allowed when criteria is oil_rate, gas_rate, or water_rate.
  • rateRowsCalculationMethod: (optional) How rate-based rows are applied. Possible values are "monotonic" and "non_monotonic". Only allowed when criteria is oil_rate, gas_rate, or water_rate.
"data": {
"state": "texas",
"rows": [
{
"key": "oil",
"category": "severance_tax",
"criteria": "entire_well_life",
"period": "Flat",
"value": 4.6,
"unit": "pct_of_revenue",
"calculation": "nri"
}
]
}

Definitions​

calculation​

This property is a string defining the working interest basis for the tax calculation. Possible values are:

  • "100_pct_wi"
  • "lease_nri"
  • "lease_nri_minus_one"
  • "nri"
  • "nri_minus_one"
  • "one_minus_nri"
  • "one_minus_lease_nri"
  • "one_minus_wi"
  • "wi"
  • "wi_minus_one"

category​

The tax category for this row. Valid values depend on key — see the key → category constraint.

  • "severance_tax" — State severance tax applied to a production stream. Only valid when key is oil, gas, ngl, or drip_condensate.
  • "ad_val_tax" — Ad valorem (property) tax. Only valid when key is ad_valorem_tax.
  • "pa_if_h_2021" — Pennsylvania Impact Fee, horizontal well, 2021 schedule. Only valid when key is ad_valorem_tax. period, value, and unit must not be provided.
  • "pa_if_h_2022_2024" — Pennsylvania Impact Fee, horizontal well, 2022–2024 schedule. Only valid when key is ad_valorem_tax. period, value, and unit must not be provided.
  • "pa_if_v_2021" — Pennsylvania Impact Fee, vertical well, 2021 schedule. Only valid when key is ad_valorem_tax. period, value, and unit must not be provided.
  • "pa_if_v_2022_2024" — Pennsylvania Impact Fee, vertical well, 2022–2024 schedule. Only valid when key is ad_valorem_tax. period, value, and unit must not be provided.

criteria​

The timing or rate basis used to segment the tax schedule. Valid values depend on category — see the category → criteria constraints.

  • "entire_well_life" — A single flat rate applied for the entire well life. period must be "Flat" and value must be a single number. Valid for severance_tax and ad_val_tax.
  • "offset_to_fpd" — Months offset from first production date. period is an array of numbers from 0 to 1200. Valid for all non-PA IF categories.
  • "offset_to_as_of_date" — Months offset from the as-of date. period is an array of numbers from 0 to 1200. Valid for severance_tax and ad_val_tax.
  • "offset_to_discount_date" — Months offset from the discount date. period is an array of numbers from 0 to 1200. Valid for severance_tax and ad_val_tax.
  • "offset_to_first_segment" — Months offset from the first forecast segment. period is an array of numbers from 0 to 1200. Valid for severance_tax and ad_val_tax.
  • "offset_to_end_history" — Months offset from end of production history. period is an array of numbers from 0 to 1200. Valid for severance_tax and ad_val_tax.
  • "dates" — Calendar month boundaries. period is an array of ISO date strings (YYYY-MM-DD) between 1900-01-01 and 2262-04-01. Dates are stored as MM/yyyy. Valid for severance_tax and ad_val_tax.
  • "oil_rate" — Oil production rate thresholds in Bbl/d. period is an array of numbers from 0 to 10000000000. Valid for severance_tax and ad_val_tax.
  • "gas_rate" — Gas production rate thresholds in Mcf/d. period is an array of numbers from 0 to 10000000000. Valid for severance_tax and ad_val_tax.
  • "water_rate" — Water production rate thresholds in Bbl/d. period is an array of numbers from 0 to 10000000000. Only valid when category is ad_val_tax.
  • "spud_date_from_headers" — Spud date derived from well headers. Only valid for pa_if_* categories.
  • "spud_date_from_schedule" — Spud date derived from the well schedule. Only valid for pa_if_* categories.

deductSeveranceTax​

A Boolean that determines whether severance tax is deducted before applying this row's ad valorem rate. Possible values are true and false. Not allowed when category is severance_tax.

description​

A free-text string that can be used to annotate the row. Maximum length is 200 characters.

key​

The production stream this row applies to. Possible values are:

  • "oil" — Oil stream. category must be severance_tax.
  • "gas" — Gas stream. category must be severance_tax.
  • "ngl" — Natural gas liquids stream. category must be severance_tax.
  • "drip_condensate" — Drip condensate stream. category must be severance_tax.
  • "ad_valorem_tax" — Ad valorem tax. category must be one of ad_val_tax, pa_if_h_2021, pa_if_h_2022_2024, pa_if_v_2021, or pa_if_v_2022_2024.

Key and category constraints​

keyAllowed category values
oilseverance_tax
gasseverance_tax
nglseverance_tax
drip_condensateseverance_tax
ad_valorem_taxad_val_tax, pa_if_h_2021, pa_if_h_2022_2024, pa_if_v_2021, pa_if_v_2022_2024

Category and criteria constraints​

categoryAllowed criteria values
severance_taxentire_well_life, offset_to_fpd, offset_to_as_of_date, offset_to_discount_date, offset_to_first_segment, offset_to_end_history, dates, oil_rate, gas_rate
ad_val_taxentire_well_life, offset_to_fpd, offset_to_as_of_date, offset_to_discount_date, offset_to_first_segment, offset_to_end_history, dates, oil_rate, gas_rate, water_rate
pa_if_h_2021, pa_if_h_2022_2024, pa_if_v_2021, pa_if_v_2022_2024offset_to_fpd, spud_date_from_headers, spud_date_from_schedule

Note: water_rate criteria is only valid for category: ad_val_tax.

Key and unit constraints​

keyAllowed unit values
oildollar_per_month, dollar_per_bbl, pct_of_revenue
gasdollar_per_month, dollar_per_mcf, pct_of_revenue
ngldollar_per_month, dollar_per_bbl, pct_of_revenue
drip_condensatedollar_per_month, dollar_per_bbl, pct_of_revenue
ad_valorem_taxdollar_per_month, dollar_per_boe, pct_of_revenue

period​

An array whose element type depends on the criteria value. period and value arrays must always have the same length. Maximum 5000 items.

criteriaperiod formatRange
entire_well_lifeMust be the string "Flat". A single value (not an array) is expected on input.N/A
offset_to_fpd, offset_to_as_of_date, offset_to_discount_date, offset_to_first_segment, offset_to_end_historyArray of numbers0 – 1200 per item
datesArray of ISO date strings (YYYY-MM-DD). Stored as MM/yyyy.1900-01-01 – 2262-04-01
oil_rate, gas_rate, water_rateArray of numbers0 – 10000000000 per item
pa_if_* categoriesMust not be providedN/A

rateRowsCalculationMethod​

A string representing the method used when applying rate-based rows. Only allowed when criteria is oil_rate, gas_rate, or water_rate. Possible values are "monotonic" and "non_monotonic".

rateType​

A string representing the rate basis. Only allowed when criteria is oil_rate, gas_rate, or water_rate. Possible values are:

  • "gross_well_head"
  • "gross_sales"
  • "net_sales"

shrinkageCondition​

A string defining whether volumes are measured before or after gas shrinkage.

  • Required when unit is dollar_per_bbl or dollar_per_mcf.
  • Not allowed when unit is dollar_per_month, pct_of_revenue, or dollar_per_boe.

Possible values are "shrunk" or "unshrunk".

state​

A string representing the US state whose production tax rules apply. Possible values are:

  • "custom"
  • "alaska"
  • "alabama"
  • "arkansas"
  • "arizona"
  • "california"
  • "colorado"
  • "florida"
  • "idaho"
  • "indiana"
  • "kansas"
  • "kentucky"
  • "louisiana"
  • "maryland"
  • "michigan"
  • "mississippi"
  • "montana"
  • "north_dakota"
  • "nebraska"
  • "new_mexico"
  • "nevada"
  • "new_york"
  • "ohio"
  • "oklahoma"
  • "oregon"
  • "pennsylvania"
  • "pennsylvania horizontal"
  • "south_dakota"
  • "tennessee"
  • "texas"
  • "utah"
  • "virginia"
  • "west_virginia"
  • "wyoming"

unit​

The unit of measurement applied to each value entry. Valid values depend on key — see the key → unit constraint. Required for severance_tax and ad_val_tax categories. Must not be provided for pa_if_* categories.

  • "dollar_per_month" — A fixed dollar amount charged per month.
  • "dollar_per_boe" — Dollar amount per barrel of oil equivalent. Only valid for key: ad_valorem_tax.
  • "dollar_per_bbl" — Dollar amount per barrel. Valid for oil, ngl, and drip_condensate. Requires shrinkageCondition.
  • "dollar_per_mcf" — Dollar amount per thousand cubic feet of gas. Only valid for key: gas. Requires shrinkageCondition.
  • "pct_of_revenue" — Percentage of revenue.

value​

An array of numbers, one per period entry, representing the tax rate or amount for each segment. period and value arrays must always have the same length. Maximum 5000 items.

  • For entire_well_life, a single number (not an array) is accepted on input.
  • Required for severance_tax and ad_val_tax categories.
  • Must not be provided for pa_if_* categories.