{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.exponential_growth/1.0.7/input.json",
  "title": "Exponential growth / decay — input",
  "type": "object",
  "oneOf": [
    {
      "title": "solve-xt",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "x0",
        "ratePct",
        "t"
      ],
      "properties": {
        "x0": {
          "type": "number",
          "description": "Initial value x₀"
        },
        "ratePct": {
          "type": "number",
          "description": "Percent rate r (periodic) or continuous k"
        },
        "t": {
          "type": "number",
          "description": "Time periods / time"
        },
        "model": {
          "type": "string",
          "enum": [
            "periodic",
            "continuous"
          ],
          "description": "Default periodic"
        }
      }
    },
    {
      "title": "solve-t",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "x0",
        "ratePct",
        "xt"
      ],
      "properties": {
        "x0": {
          "type": "number",
          "description": "Initial value x₀"
        },
        "ratePct": {
          "type": "number",
          "description": "Percent rate r (periodic) or continuous k"
        },
        "xt": {
          "type": "number",
          "description": "Final value x(t)"
        },
        "model": {
          "type": "string",
          "enum": [
            "periodic",
            "continuous"
          ],
          "description": "Default periodic"
        }
      }
    },
    {
      "title": "solve-x0",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ratePct",
        "t",
        "xt"
      ],
      "properties": {
        "ratePct": {
          "type": "number",
          "description": "Percent rate r (periodic) or continuous k"
        },
        "t": {
          "type": "number",
          "description": "Time periods / time"
        },
        "xt": {
          "type": "number",
          "description": "Final value x(t)"
        },
        "model": {
          "type": "string",
          "enum": [
            "periodic",
            "continuous"
          ],
          "description": "Default periodic"
        }
      }
    },
    {
      "title": "solve-rate",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "x0",
        "t",
        "xt"
      ],
      "properties": {
        "x0": {
          "type": "number",
          "description": "Initial value x₀"
        },
        "t": {
          "type": "number",
          "description": "Time periods / time"
        },
        "xt": {
          "type": "number",
          "description": "Final value x(t)"
        },
        "model": {
          "type": "string",
          "enum": [
            "periodic",
            "continuous"
          ],
          "description": "Default periodic"
        }
      }
    },
    {
      "title": "verify",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "x0",
        "ratePct",
        "t",
        "xt"
      ],
      "properties": {
        "x0": {
          "type": "number",
          "description": "Initial value x₀"
        },
        "ratePct": {
          "type": "number",
          "description": "Percent rate r (periodic) or continuous k"
        },
        "t": {
          "type": "number",
          "description": "Time periods / time"
        },
        "xt": {
          "type": "number",
          "description": "Final value x(t)"
        },
        "model": {
          "type": "string",
          "enum": [
            "periodic",
            "continuous"
          ],
          "description": "Default periodic"
        }
      }
    }
  ],
  "description": "Periodic x₀(1+r/100)^t or continuous x₀e^(kt) growth and decay. Any three of x₀, r/k, t, x(t) solve the fourth; all four verify displayed-precision consistency. (calculation_version 1.0.7)"
}
