health

Calculate Schedule Health Score

Calculate comprehensive schedule health score (0-100) based on deterministic analysis.

This endpoint performs:

  • DAG construction and validation
  • Critical Path Method (CPM) calculation
  • Float analysis and erosion detection
  • Critical path density evaluation
  • Structural integrity assessment
  • Weighted composite scoring per DCMA/GAO/AACE standards

Performance Target: Response time <5s for 1,000 tasks (Phase 1A)

Task Limits:

  • Synchronous processing: up to 1,000 tasks
  • Tier-based limits: Free (500), Professional (5,000), Enterprise (50,000+)

Compliance:

  • DCMA 14-Point Assessment
  • GAO Schedule Assessment Guide
  • AACE RP 92R-19 (Schedule Health Metrics)
  • PMBOK 8 Section 4.5
post/api/v1/health/score

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/health/score
  • Auth: none declared

Headers

x-api-keystring nullable
authorizationstring nullable
x-bellator-internal-dispatchstring nullable

Request body

include_detailsboolean

Include detailed task-level diagnostics and actionable recommendations

use_ml_scoringboolean

Use ML ensemble model for score aggregation with SHAP explainability (Professional+ tiers only)

Example request

{
  "tasks": [
    {
      "duration_days": 10,
      "id": "T1",
      "percent_complete": 0,
      "planned_finish": "2025-01-15",
      "planned_start": "2025-01-01",
      "predecessors": []
    },
    {
      "duration_days": 15,
      "id": "T2",
      "percent_complete": 0,
      "planned_finish": "2025-02-05",
      "planned_start": "2025-01-16",
      "predecessors": [
        "T1"
      ]
    }
  ]
}

Response

Success - Health score calculated

status'pass' | 'fail' | 'warning' | 'info' required

Top-level result status — always present in every response.

scorenumber nullable
grade'A' | 'B' | 'C' | 'D' | 'F'

Letter grade derived from a 0–100 score. Null on non-scoring endpoints.

summarystring nullable
breakdownobject nullable

Example response

{
  "data": {
    "breakdown": {
      "criticality_score": 90,
      "density_score": 80,
      "float_erosion_score": 85,
      "structural_score": 95
    },
    "confidence": 0.95,
    "details": {
      "cpm": {
        "critical_path_length": 12,
        "project_duration_days": 45
      },
      "criticality": {
        "critical_density_pct": 45,
        "critical_task_count": 45,
        "critical_tasks": [
          {
            "float_days": 0,
            "id": "T1",
            "name": "Foundation"
          }
        ],
        "near_critical_tasks": [
          {
            "float_days": 2,
            "id": "T2",
            "name": "Framing"
          }
        ],
        "recommendations": [
          "HIGH PRIORITY: 45 of 100 tasks (45.0%) are on the critical path",
          "[PMBOK 2.7.5.2] Review task dependencies for opportunities to create parallel work streams (fast-tracking)",
          "[AACE RP 27R-03] Add time buffers (contingency reserves) before major milestones to protect against schedule delays"
        ],
        "total_tasks": 100
      },
      "float_erosion": {
        "average_float_days": 2.3,
        "critical_ratio_pct": 45,
        "max_float_days": 8.5,
        "min_float_days": 0,
        "recommendations": [
          "[AACE RP 27R-03] Limited schedule flexibility with average schedule reserve of 2.3 days",
          "[PMBOK 2.8.4.3] Implement proactive risk management to protect remaining float"
        ],
        "tasks_with_low_float": [
          {
            "float_days": 2,
            "id": "T2",
            "name": "Framing"
          }
        ]
      },
      "structural": {
        "dangling_tasks": [],
        "issues": [],
        "missing_logic_count": 0,
        "recommendations": []
      }
    },
    "grade": "B",
    "score": 85.5,
    "top_signals": [
      "High critical path density (45%)",
      "Low average float (2.3 days)"
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.