Prevedere ForecastModel API

The ForecastModel API from Prevedere — 16 operation(s) for forecastmodel.

Operations 16

GET /backtest
GET /forecastmodel/{ForecastModelId} Retrieves information for a single model given the ID
GET /forecastmodels Retrieves the list of accessible forecast models for the user
GET /rawmodel/{ForecastModelId}
GET /rawmodel/{ForecastModelId}/{UseForecastFrequency}
GET /model/summary/{ForecastModelId}
GET /model/consistency/{ForecastModelId}
GET /forecast/{ForecastModelId}
GET /model/contribution/{ForecastModelId}
POST /model/modelhealth/{ForecastModelId} Checks model health for the given model id
GET /model/impact/{ForecastModelId}
GET /forecast/risk/{ForecastModelId}
GET /forecast/riskgrowth/{ForecastModelId}
GET /forecast/statistics/{ForecastModelId}
GET /forecast/modelscore/{ForecastModelId}
GET /forecast/logcontribution/{ForecastModelId} Retrieves a log forecast model contribution

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/prevedere-forecastmodel-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

prevedere-forecastmodel-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Board Foresight API - V1 Alert Forecast Model API
  description: ''
  version: v1
servers:
- url: https://api.prevedere.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- api key: []
tags:
- name: ForecastModel
  description: ''
paths:
  /backtest:
    get:
      tags:
      - ForecastModel
      description: Performs a backtest on the supplied model id
      parameters:
      - name: ForecastModelId
        in: query
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
          format: date-time
      - name: TargetHorizon
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '410':
          description: Gone
        '429':
          description: If the user has sent too many requests
      deprecated: true
  /forecastmodel/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      summary: Retrieves information for a single model given the ID
      description: 'This endpoint is used to pull information about an individual model accessible to the API key.



        The response includes model metadata, information about the dependent variable or Primary Indicator and independent or Explanatory Indicators including offsets and display values.'
      parameters:
      - name: ForecastModelId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastModelInfo'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Model is expired or in a non-production state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '429':
          description: If the user has sent too many requests
  /forecastmodels:
    get:
      tags:
      - ForecastModel
      summary: Retrieves the list of accessible forecast models for the user
      description: Retrieves the list of accessible forecast models for the user
      parameters:
      - name: tags
        in: query
        description: Provide of list of tags to filter by. Only models with at least one of the provided tags will be returned
        schema:
          type: array
          items:
            type: string
      - name: states
        in: query
        description: "Provide a list of states to filter by. Only models with one of the provided states will be returned. \n            Hold CTRL or Command key to select multiple model states\n            \n\n            0 = Draft\n            \n\n            1 = Archive\n            \n\n            2 = Production"
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ModelState'
      - name: generateSummary
        in: query
        description: If true, generates a brief summary of each model. This will increase the time for a response by 7 seconds per model.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ForecastModelInfo'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ForecastModelInfo'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ForecastModelInfo'
        '429':
          description: If the user has sent too many requests
  /rawmodel/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves the component data of a forecast model
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: UseForecastFrequency
        in: query
        schema:
          type: boolean
      - name: ExcludeIndicators
        in: query
        schema:
          type: boolean
      - name: AsOfDate
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
        '429':
          description: If the user has sent too many requests
        '422':
          description: Model is expired or in a non-production state
  /rawmodel/{ForecastModelId}/{UseForecastFrequency}:
    get:
      tags:
      - ForecastModel
      description: Retrieves the component data of a forecast model
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: UseForecastFrequency
        in: path
        required: true
        schema:
          type: boolean
      - name: ExcludeIndicators
        in: query
        schema:
          type: boolean
      - name: AsOfDate
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/ForecastModelComponentInfo'
        '429':
          description: If the user has sent too many requests
        '422':
          description: Model is expired or in a non-production state
  /model/summary/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves the model commentary summary for a forecast model
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ForecastModelSummaryInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastModelSummaryInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/ForecastModelSummaryInfo'
        '400':
          description: Bad Request
        '422':
          description: Model is expired or in a non-production state
        '500':
          description: Internal Server Error
        '429':
          description: If the user has sent too many requests
  /model/consistency/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves the consistency information for a forecast model
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ForecastModelConsistencyInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastModelConsistencyInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/ForecastModelConsistencyInfo'
        '400':
          description: Bad Request
        '422':
          description: Model is expired or in a non-production state
        '500':
          description: Internal Server Error
        '429':
          description: If the user has sent too many requests
  /forecast/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves a forecast
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Point'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Point'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Point'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /model/contribution/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves independent variable contribution information
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ContributionResult'
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionResult'
            text/json:
              schema:
                $ref: '#/components/schemas/ContributionResult'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /model/modelhealth/{ForecastModelId}:
    post:
      tags:
      - ForecastModel
      summary: Checks model health for the given model id
      description: The forecast model id must be a locked model of the type segmented or multivariate
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ForecastModelHealth'
          application/json:
            schema:
              $ref: '#/components/schemas/ForecastModelHealth'
          text/json:
            schema:
              $ref: '#/components/schemas/ForecastModelHealth'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ForecastModelHealth'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ModelHealthResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ModelHealthResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ModelHealthResponse'
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /model/impact/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves a forecast
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelativeImpactInfo'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelativeImpactInfo'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelativeImpactInfo'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /forecast/risk/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves model risk
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RiskResult'
            application/json:
              schema:
                $ref: '#/components/schemas/RiskResult'
            text/json:
              schema:
                $ref: '#/components/schemas/RiskResult'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /forecast/riskgrowth/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves model risk growth
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RiskGrowthResult'
            application/json:
              schema:
                $ref: '#/components/schemas/RiskGrowthResult'
            text/json:
              schema:
                $ref: '#/components/schemas/RiskGrowthResult'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /forecast/statistics/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves model statistics
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatisticsResult'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatisticsResult'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatisticsResult'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /forecast/modelscore/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      description: Retrieves model score
      parameters:
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ModelScore'
            application/json:
              schema:
                $ref: '#/components/schemas/ModelScore'
            text/json:
              schema:
                $ref: '#/components/schemas/ModelScore'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
  /forecast/logcontribution/{ForecastModelId}:
    get:
      tags:
      - ForecastModel
      summary: Retrieves a log forecast model contribution
      description: Retrieves a log model contribution
      parameters:
      - name: FiscalYearStart
        in: query
        description: Fiscal year start specifies the fiscal year start month to aggregate values. The default start month is January.
        schema:
          type: string
      - name: PeriodOverPeriod
        in: query
        description: When set to true, this will change values to Period over Period lift basis for CCR calculation. The default is false.
        schema:
          type: boolean
      - name: ForecastModelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: AsOfDate
        in: query
        schema:
          type: string
      - name: UseCalculation
        in: query
        description: When parameter value passed is 'true', this will return the forecast series with the model transformation. When parameter value passed is 'false' or no parameter value is passed, raw values are returned.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/VolumeDecompResult'
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeDecompResult'
            text/json:
              schema:
                $ref: '#/components/schemas/VolumeDecompResult'
        '422':
          description: Model is expired or in a non-production state
        '429':
          description: If the user has sent too many requests
components:
  schemas:
    IndicatorType:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      type: integer
      format: int32
    ForecastModelHealth:
      type: object
      properties:
        runModelHealthNow:
          type: boolean
          description: 'This field give the user the ability to ‘remotely press’ the ‘check model health now’ button in the app to get the latest model health results.

            The default operation for this input will be to NOT ‘check model health now’. When the default value of false (don’t run model health now) is

            replaced with a value of true (run model health now), the equivalent of depressing the green button in the app will be triggered.'
          example: true
        referenceTable:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ControlChartPoint'
          description: ''
          example:
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
          - rule1_major_outlier: 0
            rule2_9pos_inarow: 0
            rule3_6_trend: 0
            rule4_14_up_and_down: 0
            rule5_2_out_of_3: 0
            rule6_4_out_of_5: 0
            rule7_15_stay_within_1std: 0
            rule8_8stay_out_1std: 0
            model_decay: 0
            dateString: string
      additionalProperties: false
    IndicatorContribution:
      type: object
      properties:
        entryId:
          type:
          - string
          - 'null'
        value:
          type: number
          format: double
      additionalProperties: false
    Provider:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        id:
          type: string
          format: uuid
        source:
          type:
          - string
          - 'null'
      additionalProperties: false
    DisplayInformation:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: The display name to be used in the application. Limited to 50 characters.
        description:
          type:
          - string
          - 'null'
          description: The description to be shown in the application. Limited to 1,000 characters.
        color:
          type:
          - string
          - 'null'
          description: The color to use in the application. Must be a valid hex color code.
        category:
          type:
          - string
          - 'null'
          description: The category of the indicator. Limited to 1,000 characters.
      additionalProperties: false
    Transformation:
      type: object
      properties:
        order:
          type: integer
          format: int32
        required:
          type: boolean
      additionalProperties: false
    ModelScore:
      type: object
      properties:
        score:
          type: number
          format: double
        modelScoreType:
          type:
          - string
          - 'null'
        predictiveRSquared:
          type: number
          format: double
        inSampleMeanAbsoluteError:
          type: number
          format: double
        holdoutMeanAbsoluteError:
          type: number
          format: double
        percentOfClassificationsUtilized:
          type: number
          format: double
        durbinWatson:
          type: number
          format: double
        residualTrend:
          type: number
          format: double
        percentOfVariablesToPenalize:
          type: number
          format: double
        aggregateEffectAtHorizon:
          type: number
          format: double
        weightedAggregateEffectAtHorizon:
          type: number
          format: double
        averageSinglePeriodErrorThroughHorizon:
          type: number
          format: double
        weightedAverageSinglePeriodErrorThroughHorizon:
          type: number
          format: double
        percentOfTargetHorizonUtilized:
          type: number
          format: double
        indicatorDiversity:
          type: number
          format: double
        segmentScores:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/SegmentScore'
      additionalProperties: false
    ContributionPeriod:
      type: object
      properties:
        date:
          type: string
          format: date-time
        errorFlag:
          type: boolean
        errorText:
          type:
          - string
          - 'null'
        yearOverYear:
          type: number
          format: double
        unexplained:
          type: number
          format: double
        components:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IndicatorContribution'
      additionalProperties: false
    AggregationMethod:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      type: integer
      format: int32
    ControlChartPrescription:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        prescription:
          type:
          - string
          - 'null'
        event:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        date:
          type:
          - number
          - 'null'
          format: double
      additionalProperties: false
    Classification:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      type: integer
      format: int32
    StatisticsResult:
      type: object
      properties:
        rootMeanSquare:
          type: number
          format: double
        rootMeanSquareInModelCalculation:
          type: number
          format: double
        durbinWatson:
          type: number
          format: double
        durbinWatsonInModelCalculation:
          type: number
          format: double
        inSampleMeanAbsolutePercentError:
          type: number
          format: double
        inSampleMeanAbsoluteError:
          type: number
          format: double
        rawResiduals:
          type:
          - array
          - 'null'
          items:
    

# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/prevedere/refs/heads/main/openapi/prevedere-forecastmodel-api-openapi.yml