---
title: "Baseline Variance Analysis (Async)"
method: POST
path: "/api/v1/forensics/baseline-compare/async"
tags: ["Forensics"]
---

# Baseline Variance Analysis (Async)

`POST /api/v1/forensics/baseline-compare/async`

## Request

- Base URL: `https://api.bellatorsi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.bellatorsi.com/api/v1/forensics/baseline-compare/async`
- Auth: none declared

Submit async baseline comparison for large schedules. Poll GET /api/v1/jobs/{job_id}.

## Headers

- `x-api-key` string, nullable
- `authorization` string, nullable
- `x-bellator-internal-dispatch` string, nullable

## Request body

- BaselineCompareRequest: Request body for POST /api/v1/forensics/baseline-compare.
  - `current_schedule` BaselineCompareCurrentSchedule, required: Current schedule snapshot for baseline comparison.
    - `tasks` Task[], required
      - `id` string, required: Unique task identifier
      - `duration_days` number: Task duration in days
      - `predecessors` union[]: List of predecessor task IDs or dependency links. Supports: 'T1', 'T1FS+5 d', 'T2SS-2 d', or DependencyLink objects
        - union
          - string
          - object
          - DependencyLink: Rich dependency link with relationship type and lag/lead. Supports parsing from various scheduling tool formats including: - MS Project: "10FS+5 d", "/path/file.mpp/10FS+5 d" - Primavera P6: Similar format with XER encoding - Server-based: "<ServerFile>10FS+5 d" - Simple: "10" (defaults to FS with zero lag) Examples: >>> DependencyLink(task_id="10", relationship_type="FS", lag_days=5.0) >>> DependencyLink.from_string("10FS+5 d") >>> DependencyLink.from_string("15SS-2 d")
            - `task_id` string, required: Predecessor task ID
            - `relationship_type` 'FS' | 'SS' | 'FF' | 'SF': Task relationship types per PMBOK 6.3.2.2. Attributes: FINISH_START: Predecessor finish → successor start (most common, ~90%) START_START: Predecessor start → successor start (~5%) FINISH_FINISH: Predecessor finish → successor finish (~4%) START_FINISH: Predecessor start → successor finish (rare, ~1%)
            - `lag_days` number: Lag (positive) or lead (negative) in days
            - `is_external` boolean: True if link to external project file
            - `external_path` string, nullable: Path to external file if is_external=True
      - `name` string, nullable: Task name
      - `resource` string, nullable: Resource assigned to task
      - `resources` string[]: List of resources assigned (for multi-resource tasks)
      - `percent_complete` number: Percent complete (0-100)
      - `physical_percent_complete` number, nullable: Physical percent complete (0-100). Manual EVM entry by scheduler (MSP PhysicalPercentComplete). Authoritative for BCWP calculations. Captured separately from percent_complete on MSP imports.
      - `planned_start` string, date, nullable: Planned start date (ISO 8601)
      - `planned_finish` string, date, nullable: Planned finish date (ISO 8601)
      - `actual_start` string, date, nullable: Actual start date (ISO 8601)
      - `actual_finish` string, date, nullable: Actual finish date (ISO 8601)
      - `baseline_start` string, date, nullable: Baseline start date (ISO 8601)
      - `baseline_finish` string, date, nullable: Baseline finish date (ISO 8601)
      - `constraint_type` string, nullable: Constraint type: ASAP, ALAP, SNET, SNLT, FNET, FNLT, MSO, MFO
      - `constraint_date` string, date, nullable: Constraint date if applicable (ISO 8601)
      - `task_type` string, nullable: Task type classification. Valid values: task (default), milestone, loe, summary, schedule_margin, planning_package, slpp, schedule_visibility. Drives DCMA check exclusions per PAM 200.1 § 3.2.
      - `wbs_code` string, nullable: WBS code (e.g., '1.2.3')
      - `organization_code` string, nullable: Org/dept identifier for anomaly categorization (Progress Audit)
      - `custom_field_map` object, nullable: 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.
      - `forecast_start` string, date, nullable: Current forecast start date (ISO 8601)
      - `forecast_finish` string, date, nullable: Current forecast finish date (ISO 8601)
      - `total_float_days` number, nullable: Pre-computed total float in days. Auto-computed by CPM if absent.
      - `baseline_duration_days` number, nullable: Baseline duration in days. Auto-computed from baseline dates if absent.
      - `delay_category` string, nullable: Delay attribution category. Valid values: owner, contractor, design, procurement, weather, force_majeure.
      - `earned_value` number, nullable: Earned Value (BCWP) in cost units. Requires options.include_ev_validation.
      - `budgeted_cost` number, nullable: Budgeted Cost of Work Scheduled (BCWS) in cost units.
      - `approval_required` boolean, nullable: Whether this task requires explicit approval before it can start.
      - `approval_status` string, nullable: Approval workflow state. Valid values: not_required, pending, approved, rejected.
    - `status_date` string, required
  - `baseline_schedule` BaselineScheduleInput, required: Approved baseline schedule for comparison.
    - `tasks` Task[], required
      - `id` string, required: Unique task identifier
      - `duration_days` number: Task duration in days
      - `predecessors` union[]: List of predecessor task IDs or dependency links. Supports: 'T1', 'T1FS+5 d', 'T2SS-2 d', or DependencyLink objects
        - union
          - string
          - object
          - DependencyLink: Rich dependency link with relationship type and lag/lead. Supports parsing from various scheduling tool formats including: - MS Project: "10FS+5 d", "/path/file.mpp/10FS+5 d" - Primavera P6: Similar format with XER encoding - Server-based: "<ServerFile>10FS+5 d" - Simple: "10" (defaults to FS with zero lag) Examples: >>> DependencyLink(task_id="10", relationship_type="FS", lag_days=5.0) >>> DependencyLink.from_string("10FS+5 d") >>> DependencyLink.from_string("15SS-2 d")
            - `task_id` string, required: Predecessor task ID
            - `relationship_type` 'FS' | 'SS' | 'FF' | 'SF': Task relationship types per PMBOK 6.3.2.2. Attributes: FINISH_START: Predecessor finish → successor start (most common, ~90%) START_START: Predecessor start → successor start (~5%) FINISH_FINISH: Predecessor finish → successor finish (~4%) START_FINISH: Predecessor start → successor finish (rare, ~1%)
            - `lag_days` number: Lag (positive) or lead (negative) in days
            - `is_external` boolean: True if link to external project file
            - `external_path` string, nullable: Path to external file if is_external=True
      - `name` string, nullable: Task name
      - `resource` string, nullable: Resource assigned to task
      - `resources` string[]: List of resources assigned (for multi-resource tasks)
      - `percent_complete` number: Percent complete (0-100)
      - `physical_percent_complete` number, nullable: Physical percent complete (0-100). Manual EVM entry by scheduler (MSP PhysicalPercentComplete). Authoritative for BCWP calculations. Captured separately from percent_complete on MSP imports.
      - `planned_start` string, date, nullable: Planned start date (ISO 8601)
      - `planned_finish` string, date, nullable: Planned finish date (ISO 8601)
      - `actual_start` string, date, nullable: Actual start date (ISO 8601)
      - `actual_finish` string, date, nullable: Actual finish date (ISO 8601)
      - `baseline_start` string, date, nullable: Baseline start date (ISO 8601)
      - `baseline_finish` string, date, nullable: Baseline finish date (ISO 8601)
      - `constraint_type` string, nullable: Constraint type: ASAP, ALAP, SNET, SNLT, FNET, FNLT, MSO, MFO
      - `constraint_date` string, date, nullable: Constraint date if applicable (ISO 8601)
      - `task_type` string, nullable: Task type classification. Valid values: task (default), milestone, loe, summary, schedule_margin, planning_package, slpp, schedule_visibility. Drives DCMA check exclusions per PAM 200.1 § 3.2.
      - `wbs_code` string, nullable: WBS code (e.g., '1.2.3')
      - `organization_code` string, nullable: Org/dept identifier for anomaly categorization (Progress Audit)
      - `custom_field_map` object, nullable: 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.
      - `forecast_start` string, date, nullable: Current forecast start date (ISO 8601)
      - `forecast_finish` string, date, nullable: Current forecast finish date (ISO 8601)
      - `total_float_days` number, nullable: Pre-computed total float in days. Auto-computed by CPM if absent.
      - `baseline_duration_days` number, nullable: Baseline duration in days. Auto-computed from baseline dates if absent.
      - `delay_category` string, nullable: Delay attribution category. Valid values: owner, contractor, design, procurement, weather, force_majeure.
      - `earned_value` number, nullable: Earned Value (BCWP) in cost units. Requires options.include_ev_validation.
      - `budgeted_cost` number, nullable: Budgeted Cost of Work Scheduled (BCWS) in cost units.
      - `approval_required` boolean, nullable: Whether this task requires explicit approval before it can start.
      - `approval_status` string, nullable: Approval workflow state. Valid values: not_required, pending, approved, rejected.
    - `baseline_date` string, required
  - `schedule_history` BaselineCompareHistorySnapshot[]
    - `snapshot_date` string, required
    - `tasks` Task[], required
      - `id` string, required: Unique task identifier
      - `duration_days` number: Task duration in days
      - `predecessors` union[]: List of predecessor task IDs or dependency links. Supports: 'T1', 'T1FS+5 d', 'T2SS-2 d', or DependencyLink objects
        - union
          - string
          - object
          - DependencyLink: Rich dependency link with relationship type and lag/lead. Supports parsing from various scheduling tool formats including: - MS Project: "10FS+5 d", "/path/file.mpp/10FS+5 d" - Primavera P6: Similar format with XER encoding - Server-based: "<ServerFile>10FS+5 d" - Simple: "10" (defaults to FS with zero lag) Examples: >>> DependencyLink(task_id="10", relationship_type="FS", lag_days=5.0) >>> DependencyLink.from_string("10FS+5 d") >>> DependencyLink.from_string("15SS-2 d")
            - `task_id` string, required: Predecessor task ID
            - `relationship_type` 'FS' | 'SS' | 'FF' | 'SF': Task relationship types per PMBOK 6.3.2.2. Attributes: FINISH_START: Predecessor finish → successor start (most common, ~90%) START_START: Predecessor start → successor start (~5%) FINISH_FINISH: Predecessor finish → successor finish (~4%) START_FINISH: Predecessor start → successor finish (rare, ~1%)
            - `lag_days` number: Lag (positive) or lead (negative) in days
            - `is_external` boolean: True if link to external project file
            - `external_path` string, nullable: Path to external file if is_external=True
      - `name` string, nullable: Task name
      - `resource` string, nullable: Resource assigned to task
      - `resources` string[]: List of resources assigned (for multi-resource tasks)
      - `percent_complete` number: Percent complete (0-100)
      - `physical_percent_complete` number, nullable: Physical percent complete (0-100). Manual EVM entry by scheduler (MSP PhysicalPercentComplete). Authoritative for BCWP calculations. Captured separately from percent_complete on MSP imports.
      - `planned_start` string, date, nullable: Planned start date (ISO 8601)
      - `planned_finish` string, date, nullable: Planned finish date (ISO 8601)
      - `actual_start` string, date, nullable: Actual start date (ISO 8601)
      - `actual_finish` string, date, nullable: Actual finish date (ISO 8601)
      - `baseline_start` string, date, nullable: Baseline start date (ISO 8601)
      - `baseline_finish` string, date, nullable: Baseline finish date (ISO 8601)
      - `constraint_type` string, nullable: Constraint type: ASAP, ALAP, SNET, SNLT, FNET, FNLT, MSO, MFO
      - `constraint_date` string, date, nullable: Constraint date if applicable (ISO 8601)
      - `task_type` string, nullable: Task type classification. Valid values: task (default), milestone, loe, summary, schedule_margin, planning_package, slpp, schedule_visibility. Drives DCMA check exclusions per PAM 200.1 § 3.2.
      - `wbs_code` string, nullable: WBS code (e.g., '1.2.3')
      - `organization_code` string, nullable: Org/dept identifier for anomaly categorization (Progress Audit)
      - `custom_field_map` object, nullable: 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.
      - `forecast_start` string, date, nullable: Current forecast start date (ISO 8601)
      - `forecast_finish` string, date, nullable: Current forecast finish date (ISO 8601)
      - `total_float_days` number, nullable: Pre-computed total float in days. Auto-computed by CPM if absent.
      - `baseline_duration_days` number, nullable: Baseline duration in days. Auto-computed from baseline dates if absent.
      - `delay_category` string, nullable: Delay attribution category. Valid values: owner, contractor, design, procurement, weather, force_majeure.
      - `earned_value` number, nullable: Earned Value (BCWP) in cost units. Requires options.include_ev_validation.
      - `budgeted_cost` number, nullable: Budgeted Cost of Work Scheduled (BCWS) in cost units.
      - `approval_required` boolean, nullable: Whether this task requires explicit approval before it can start.
      - `approval_status` string, nullable: Approval workflow state. Valid values: not_required, pending, approved, rejected.
    - `planned_value_total` number, nullable
    - `earned_value_total` number, nullable
    - `actual_cost_total` number, nullable
    - `budget_at_completion` number, nullable
  - `options` BaselineCompareOptions: Options controlling baseline compare analysis.
    - `match_strategy` 'id' | 'id_and_wbs' | 'wbs_hierarchy' | 'fuzzy_id'
    - `fuzzy_match_threshold` number
    - `variance_threshold_days` integer
    - `include_task_variances` boolean
    - `include_critical_path_only` boolean
    - `include_logic_changes` boolean
    - `include_oos_impact` boolean
    - `include_trends` boolean
    - `trend_analysis_periods` integer
    - `include_evms_trends` boolean
    - `eac_method` 'cpi' | 'spi' | 'composite' | 'weighted'
    - `include_forecast_trends` boolean
    - `variance_acceleration_threshold` number
    - `include_chart_data` boolean

## Response `202`

Successful Response

- JobSubmissionResponse: Response model for async job submission.
  - `job_id` string, required: Unique job identifier
  - `status` 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled', required: Status of an async job. Job lifecycle: 1. QUEUED - Job submitted to queue, waiting for worker 2. PROCESSING - Worker picked up job and is executing 3. COMPLETED - Job finished successfully 4. FAILED - Job encountered an error 5. CANCELLED - Job was cancelled by user before completion
  - `estimated_completion_seconds` integer, required: Estimated time until completion
  - `status_url` string, required: URL to poll job status
  - `created_at` string, date-time: Job creation timestamp

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis.md) · [All operations](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/bellatorsi/apis/bellator-schedule-intelligence-apis/revisions/03e7b786e43b?raw)
