Baseline Variance Analysis
Compares the current schedule against an approved baseline to detect variance, drift, and execution performance signals.\n\nPerformance indicators: BEI, Critical Path BEI, SPI(t), variance severity, on-track percentage.\n\nOptional analysis:\n- include_trends — multi-period variance trend analysis\n- include_evms_trends — EVMS SPI/CPI/EAC indices over time\n- include_forecast_trends — EAC forecast stability tracking\n- include_logic_changes — dependency graph drift detection\n\nMatch strategies: id (default), id_and_wbs, wbs_hierarchy, fuzzy_id.\n\nTier access: Starter and above.\n\nSource: the ratios in this response, including BEI, are this route's. PAM 200.1 section 3.1.2.4 is the BEI definition cited by POST /api/v1/health/dcma-14-point. This route is not that check.
Request example
json{
"tasks": [
{
"id": "T1",
"duration_days": 5
}
]
}Request fields from OpenAPI contract
Required fields and the optional fields that change this call are listed here. The shared task model stays on the task schema guide.This table is generated from the endpoint schema in openapi.json.
| Field | Type | Required | Description |
|---|---|---|---|
| current_schedule | object | Required | Current schedule snapshot for baseline comparison. |
| current_schedule.tasks | array<unknown> | Required | No description in OpenAPI contract. |
| current_schedule.tasks[].id | string | Required | Unique task identifier |
| current_schedule.status_date | string | Required | No description in OpenAPI contract. |
| baseline_schedule | object | Required | Approved baseline schedule for comparison. |
| baseline_schedule.tasks | array<unknown> | Required | No description in OpenAPI contract. |
| baseline_schedule.tasks[].id | string | Required | Unique task identifier |
| baseline_schedule.baseline_date | string | Required | No description in OpenAPI contract. |
| schedule_history | array<unknown> | Optional | No description in OpenAPI contract. |
| schedule_history[].snapshot_date | string | Optional | No description in OpenAPI contract. |
| schedule_history[].tasks | array<unknown> | Optional | No description in OpenAPI contract. |
| schedule_history[].tasks[].id | string | Optional | Unique task identifier |
| schedule_history[].tasks[].duration_days | number | Optional | Task duration in days |
| schedule_history[].tasks[].predecessors | array<string | unknown> | Optional | List of predecessor task IDs or dependency links. Supports: 'T1', 'T1FS+5 d', 'T2SS-2 d', or DependencyLink objects |
| schedule_history[].tasks[].name | string | null | Optional | Task name |
| schedule_history[].tasks[].resource | string | null | Optional | Resource assigned to task |
| schedule_history[].tasks[].resources | array<string> | Optional | List of resources assigned (for multi-resource tasks) |
| schedule_history[].tasks[].percent_complete | number | Optional | Percent complete (0-100) |
| schedule_history[].tasks[].physical_percent_complete | number | null | Optional | Physical percent complete (0-100). Manual EVM entry by scheduler (MSP PhysicalPercentComplete). Authoritative for BCWP calculations. Captured separately from percent_complete on MSP imports. |
| schedule_history[].tasks[].planned_start | string | null | Optional | Planned start date (ISO 8601) |
| schedule_history[].tasks[].planned_finish | string | null | Optional | Planned finish date (ISO 8601) |
| schedule_history[].tasks[].actual_start | string | null | Optional | Actual start date (ISO 8601) |
| schedule_history[].tasks[].actual_finish | string | null | Optional | Actual finish date (ISO 8601) |
| schedule_history[].tasks[].baseline_start | string | null | Optional | Baseline start date (ISO 8601) |
| schedule_history[].tasks[].baseline_finish | string | null | Optional | Baseline finish date (ISO 8601) |
| schedule_history[].tasks[].constraint_type | string | null | Optional | Constraint type: ASAP, ALAP, SNET, SNLT, FNET, FNLT, MSO, MFO |
| schedule_history[].tasks[].constraint_date | string | null | Optional | Constraint date if applicable (ISO 8601) |
| schedule_history[].tasks[].task_type | string | null | Optional | Task type classification. Valid values: task (default), milestone, loe, summary, schedule_margin, planning_package, slpp, schedule_visibility. Drives which DCMA checks exclude the task. |
| schedule_history[].tasks[].wbs_code | string | null | Optional | WBS code (e.g., '1.2.3') |
| schedule_history[].tasks[].organization_code | string | null | Optional | Org/dept identifier for anomaly categorization (Progress Audit) |
| schedule_history[].tasks[].custom_field_map | object | null | Optional | All WBS/OBS-pattern custom fields discovered in this MS Project file, keyed by alias (e.g., 'CWBS', 'OBS'). Null for XER imports or when no matching aliases exist. |
| schedule_history[].tasks[].forecast_start | string | null | Optional | Current forecast start date (ISO 8601) |
| schedule_history[].tasks[].forecast_finish | string | null | Optional | Current forecast finish date (ISO 8601) |
| schedule_history[].tasks[].total_float_days | number | null | Optional | Pre-computed total float in days. Auto-computed by CPM if absent. |
| schedule_history[].tasks[].baseline_duration_days | number | null | Optional | Baseline duration in days. Auto-computed from baseline dates if absent. |
| schedule_history[].tasks[].delay_category | string | null | Optional | Delay attribution category. Valid values: owner, contractor, design, procurement, weather, force_majeure. |
| schedule_history[].tasks[].earned_value | number | null | Optional | Earned Value (BCWP) in cost units. Requires options.include_ev_validation. |
| schedule_history[].tasks[].budgeted_cost | number | null | Optional | Budgeted Cost of Work Scheduled (BCWS) in cost units. |
| schedule_history[].tasks[].approval_required | boolean | null | Optional | Whether this task requires explicit approval before it can start. |
| schedule_history[].tasks[].approval_status | string | null | Optional | Approval workflow state. Valid values: not_required, pending, approved, rejected. |
| schedule_history[].tasks[].duration_distribution_type | string | integer | null | Optional | Duration distribution. None, Uniform, Triangular, Normal, Beta, or LogNormal. |
| schedule_history[].tasks[].duration_optimistic | number | null | Optional | Optimistic duration, as days or a percent of duration_days. |
| schedule_history[].tasks[].duration_most_likely | number | null | Optional | Most likely duration, as days or a percent of duration_days. |
| schedule_history[].tasks[].duration_pessimistic | number | null | Optional | Pessimistic duration, as days or a percent of duration_days. |
| schedule_history[].tasks[].duration_confidence_interval | number | null | Optional | Confidence interval percent, 50 through 100. |
| schedule_history[].tasks[].duration_estimate_unit | string | null | Optional | duration or percent_of_deterministic. |
| schedule_history[].tasks[].probability_of_existence | number | null | Optional | Chance the activity occurs, 0 through 100. |
| schedule_history[].tasks[].discrete_risk | string | null | Optional | Risk id this activity points at. |
| schedule_history[].tasks[].correlation_sources | array<string> | null | Optional | Named correlation sources, same order as the coefficients. |
| schedule_history[].tasks[].correlation_coefficients | array<number> | null | Optional | Correlation to each source, percent from -100 through 100. |
| schedule_history[].tasks[].analysis_focal_item | boolean | null | Optional | Marks a sensitivity target. |
| schedule_history[].tasks[].calendar_id | string | null | Optional | Calendar whose lost-time model applies. |
| schedule_history[].tasks[].probabilistic_branch | array<object> | null | Optional | Mutually exclusive successors and their weights. |
| schedule_history[].tasks[].conditional_branch | array<object> | null | Optional | Successors chosen from the predecessor finish. |
| schedule_history[].planned_value_total | number | null | Optional | No description in OpenAPI contract. |
| schedule_history[].earned_value_total | number | null | Optional | No description in OpenAPI contract. |
| schedule_history[].actual_cost_total | number | null | Optional | No description in OpenAPI contract. |
| schedule_history[].budget_at_completion | number | null | Optional | No description in OpenAPI contract. |
| options | object | Optional | Options controlling baseline compare analysis. |
| options.match_strategy | string | Optional | No description in OpenAPI contract. |
| options.fuzzy_match_threshold | number | Optional | No description in OpenAPI contract. |
| options.variance_threshold_days | integer | Optional | No description in OpenAPI contract. |
| options.include_task_variances | boolean | Optional | No description in OpenAPI contract. |
| options.include_critical_path_only | boolean | Optional | No description in OpenAPI contract. |
| options.include_logic_changes | boolean | Optional | No description in OpenAPI contract. |
| options.include_oos_impact | boolean | Optional | No description in OpenAPI contract. |
| options.include_trends | boolean | Optional | No description in OpenAPI contract. |
| options.trend_analysis_periods | integer | Optional | No description in OpenAPI contract. |
| options.include_evms_trends | boolean | Optional | No description in OpenAPI contract. |
| options.eac_method | string | Optional | No description in OpenAPI contract. |
| options.include_forecast_trends | boolean | Optional | No description in OpenAPI contract. |
| options.variance_acceleration_threshold | number | Optional | No description in OpenAPI contract. |
| options.include_chart_data | boolean | Optional | No description in OpenAPI contract. |
Response example
json{
"score": 92,
"grade": "A"
}Response fields from OpenAPI contract
This table is generated from the endpoint response schema in openapi.json.
| Field | Type | Required | Description |
|---|---|---|---|
| status | string | Required | Top-level result status — always present in every response. |
| metadata | object | Required | Audit trail and processing context — always present, never null. |
| metadata.task_count | integer | Required | Number of tasks in the submitted schedule |
| metadata.endpoint | string | Required | Endpoint path e.g. /api/v1/health/score |
Schema
{
"$ref": "#/components/schemas/BellatorResponse_BaselineCompareData_"
}Authentication
- API key required
Reference details
- Operation ID
- forensics_baseline_compare
- Section
- Forensics
- Tags
- Forensics
- Playground link
- /playground?endpoint=%2Fapi%2Fv1%2Fforensics%2Fbaseline-compare&method=post
Was this page helpful?
Your feedback helps us improve docs, reference pages, and Playground flows.
Topic: Baseline Variance Analysis · Page: /docs/api-reference/forensics_baseline_compare