Prevedere ForecastModel API

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

OpenAPI Specification

prevedere-forecastmodel-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Board Foresight API - V1 Alert ForecastModel API
  description: ''
  version: v1
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.\r\n\r\n\r\nThe 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. \r\n            Hold CTRL or Command key to select multiple model states\r\n            \r\n\r\n            0 = Draft\r\n            \r\n\r\n            1 = Archive\r\n            \r\n\r\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:
    RiskResult:
      type: object
      properties:
        forecast:
          type: array
          items:
            $ref: '#/components/schemas/Point'
          nullable: true
        risk:
          type: array
          items:
            $ref: '#/components/schemas/Point'
          nullable: true
        target:
          type: array
          items:
            $ref: '#/components/schemas/Point'
          nullable: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/IndicatorValues'
          nullable: true
      additionalProperties: false
    ControlChartMeta:
      type: object
      properties:
        average_residual:
          type: number
          description: Average Residual Calculated by the control chart. Should always be zero
          format: double
          nullable: true
        ucl3:
          type: number
          description: 'Upper Control Limit 3- This is 3 standard deviations above the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid + 3 * stand_dev_resid.'
          format: double
          nullable: true
        standard_dev_resid:
          type: number
          description: Standard Deviation of the Residuals calculated by the control chart.Used to calculate the control limits
          format: double
          nullable: true
        lcl3:
          type: number
          description: 'Lower Control Limit 3- This is 3 standard deviations below the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid - 3 * stand_dev_resid.'
          format: double
          nullable: true
        ucl2:
          type: number
          description: 'Upper Control Limit 2- This is 2 standard deviations above the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid + 2 * stand_dev_resid.'
          format: double
          nullable: true
        lcl2:
          type: number
          description: 'Lower Control Limit 2- This is 2 standard deviations below the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid - 2 * stand_dev_resid.'
          format: double
          nullable: true
        ucl1:
          type: number
          description: 'Upper Control Limit 1- This is 1 standard deviations above the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid + 1 * stand_dev_resid.'
          format: double
          nullable: true
        lcl1:
          type: number
          description: 'Lower Control Limit 1- This is 1 standard deviations below the mean and will be the value of one of the control lines in the chart in the app. Calculation: Average_Resid - 1 * stand_dev_resid.'
          format: double
          nullable: true
        total_violations:
          type: number
          description: Total Number of violations found in the input dataset residuals
          format: double
          nullable: true
        plot_rule1_major_outlier:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE1_MAJOR_OUTLIER' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule2_9pos_inarow:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE2_9POS_INAROW' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule3_6_trend:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE3_6_TREND' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule4_14_up_and_down:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE4_14_UP_AND_DOWN' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule7_15_stay_within_1std:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE7_15_STAY_WITHIN_1STD' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule5_2_out_of_3:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE5_2_OUT_OF_3' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule6_4_out_of_5:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE6_4_OUT_OF_5' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        plot_rule8_8stay_out_1std:
          type: number
          description: Flags used as switches in the control chart macro to determine if violation type needs to be plotted in the chart. If so, 'PLOT_RULE8_8STAY_OUT_1STD' will be set to one, otherwise it will be zero.
          format: double
          nullable: true
        model_decay_chart_cntrol_std:
          type: string
          description: The standard deviation used to calculate the model decay metric control limits.We are still playing with this setting.
          nullable: true
        model_decay_ucl:
          type: string
          description: Upper Control Limit for the model decay metric.This is calculated by the control chart using the model score and is based off of the Prevedere simulator data.
          nullable: true
        model_decay_lcl:
          type: string
          description: Lower Control Limit for the model decay metric. This is calculated by the control chart using the model score and is based off of the Prevedere simulator data.
          nullable: true
        model_decay_mov_avg_n:
          type: string
          description: The moving average setting used in the calculation of model decay.Null for usage 2 right now. This might change.
          nullable: true
        model_score2:
          type: string
          description: The value of model_score2 that was received by the control chart macro.This is used in calculating the model MODEL_DECAY_LCL and MODEL_DECAY_UCL values.Higher scoring models have tighter expected control limits.
          nullable: true
        alt_xref_date:
          type: string
          description: Null for Usage 2
          nullable: true
        data_level:
          type: string
          description: Not required for Usage two- This is the level of the data received by the control chart macro as submitted to the control chart macro.
          nullable: true
      additionalProperties: false
    EfficiencyResult:
      type: object
      properties:
        averageStandardDeviation:
          type: number
          format: double
        absoluteResidualTrend:
          type: number
          format: double
        modelPrediction:
          type: number
          format: double
        normalizedMeasuredEfficiency:
          type: number
          format: double
        modelPredictionNormalized:
          type: number
          format: double
        modeledScoreComponent:
          type: number
          format: double
        measuredScoreComponent:
          type: number
          format: double
        overallComponent:
          type: number
          format: double
        impactResidualTrend:
          type: number
          format: double
        impactCooksDistanceOutliers:
          type: number
          format: double
        impactObservationsPerVariable:
          type: number
          format: double
        impactModelMeanVif:
          type: number
          format: double
        impactStabilityOfModelStandardErrors:
          type: number
          format: double
        impactModelMeanPValues:
          type: number
          format: double
        impactDataTransformation:
          type: number
          format: double
        meanPercentChangeStandardErrorDummy:
          type: number
          format: double
        meanPercentChangeStandardError:
          type: number
          format: double
        meanModelPValue:
          type: number
          format: double
        meanModelVif:
          type: number
          format: double
        yearOverYearTransformationDummy:
          type: number
          format: double
        noneTransformationDummy:
          type: number
          format: double
        observationsPerVariable86Decay:
          type: number
          format: double
        observationsPerVariable86:
          type: number
          format: double
        cooksDistanceSegmentTwo:
          type: number
          format: double
        cooksDistanceSegment:
          type: number
          format: double
      additionalProperties: false
    ContributionPeriod:
      type: object
      properties:
        date:
          type: string
          format: date-time
        errorFlag:
          type: boolean
        errorText:
          type: string
          nullable: true
        yearOverYear:
          type: number
          format: double
        unexplained:
          type: number
          format: double
        components:
          type: array
          items:
            $ref: '#/components/schemas/IndicatorContribution'
          nullable: true
      additionalProperties: false
    ProviderAccess:
      enum:
      - 0
      - 1
      - 2
      type: integer
      format: int32
    ForecastModelConsistencyInfo:
      type: object
      properties:
        asOfDate:
          type: string
          format: date-time
        averageSinglePeriodError:
          type: number
          format: double
        averageSinglePeriodErrorModeled:
          type: number
          format: double
          nullable: true
        averageAggregatePeriodError:
          type: number
          format: double
        averageAggregatePeriodErrorModeled:
          type: number
          format: double
          nullable: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GroupedPeriodError'
          nullable: true
      additionalProperties: false
    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.\r\nThe 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\r\nreplaced with a value of true (run model health now), the equivalent of depressing the green button in the app will be triggered."
          example: true
       

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