Prevedere ForecastModel API
The ForecastModel API from Prevedere — 16 operation(s) for forecastmodel.
The ForecastModel API from Prevedere — 16 operation(s) for forecastmodel.
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