{
  "lesson_id": "PLN-019",
  "evaluation_time": "2026-09-16T09:00:00Z",
  "cases": [
    {
      "case_id": "baseline_memory_bottleneck",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 45,
      "peak_cpu_pct": 72,
      "peak_memory_pct": 92,
      "latency_p95_ms": 450,
      "latency_slo_ms": 300,
      "burst_interval_days": 3,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "MEMORY",
      "required_capacity_multiplier": 1.25,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": "src://capacity-baseline-v1",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "NO_CHANGE",
          "expected_capacity_multiplier": 1.0,
          "expected_cost_multiplier": 1.0,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        },
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 1.15,
          "expected_cost_multiplier": 1.25,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        },
        {
          "id": "SCALE_UP",
          "expected_capacity_multiplier": 1.4,
          "expected_cost_multiplier": 1.18,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "low_cpu_memory_saturation",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 32,
      "peak_cpu_pct": 60,
      "peak_memory_pct": 95,
      "latency_p95_ms": 520,
      "latency_slo_ms": 300,
      "burst_interval_days": 4,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "MEMORY",
      "required_capacity_multiplier": 1.3,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": "src://negative-low-cpu",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "NO_CHANGE",
          "expected_capacity_multiplier": 1.0,
          "expected_cost_multiplier": 1.0,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        },
        {
          "id": "SCALE_DOWN",
          "expected_capacity_multiplier": 0.8,
          "expected_cost_multiplier": 0.85,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        },
        {
          "id": "SCALE_UP",
          "expected_capacity_multiplier": 1.5,
          "expected_cost_multiplier": 1.22,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "stale_recommendation_after_spike",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 44,
      "peak_cpu_pct": 75,
      "peak_memory_pct": 94,
      "latency_p95_ms": 500,
      "latency_slo_ms": 300,
      "burst_interval_days": 3,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 7,
      "latest_demand_age_days": 1,
      "bottleneck_claim": "MEMORY",
      "required_capacity_multiplier": 1.3,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": "src://stale-rec",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "SCALE_UP",
          "expected_capacity_multiplier": 1.5,
          "expected_cost_multiplier": 1.2,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "hpa_missing_resource_requests",
      "demand_window_days": 7,
      "recommender_window_days": 8,
      "avg_cpu_pct": 60,
      "peak_cpu_pct": 90,
      "peak_memory_pct": 70,
      "latency_p95_ms": 340,
      "latency_slo_ms": 300,
      "burst_interval_days": 2,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "HPA_RESOURCE_UTILIZATION",
      "resource_requests_present": false,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "CPU",
      "required_capacity_multiplier": 1.2,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": "src://hpa-missing-request",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 1.4,
          "expected_cost_multiplier": 1.2,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "scenario_not_recomputed",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 65,
      "peak_cpu_pct": 94,
      "peak_memory_pct": 75,
      "latency_p95_ms": 390,
      "latency_slo_ms": 300,
      "burst_interval_days": 2,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "CPU",
      "required_capacity_multiplier": 1.25,
      "scenario_recomputed": false,
      "scenario_cost_current": true,
      "provenance_ref": "src://demand-v2",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 1.5,
          "expected_cost_multiplier": 1.25,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "stale_scenario_cost",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 67,
      "peak_cpu_pct": 95,
      "peak_memory_pct": 72,
      "latency_p95_ms": 410,
      "latency_slo_ms": 300,
      "burst_interval_days": 2,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "CPU",
      "required_capacity_multiplier": 1.25,
      "scenario_recomputed": true,
      "scenario_cost_current": false,
      "provenance_ref": "src://cost-old",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 1.5,
          "expected_cost_multiplier": 1.25,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "missing_provenance",
      "demand_window_days": 14,
      "recommender_window_days": 8,
      "avg_cpu_pct": 70,
      "peak_cpu_pct": 96,
      "peak_memory_pct": 70,
      "latency_p95_ms": 430,
      "latency_slo_ms": 300,
      "burst_interval_days": 2,
      "burst_observed": true,
      "seasonality_period_days": 7,
      "seasonality_covered": true,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 2,
      "bottleneck_claim": "CPU",
      "required_capacity_multiplier": 1.25,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": null,
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 1.5,
          "expected_cost_multiplier": 1.25,
          "addresses_bottleneck": true,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    },
    {
      "case_id": "transfer_monthly_batch_peak",
      "demand_window_days": 8,
      "recommender_window_days": 8,
      "avg_cpu_pct": 20,
      "peak_cpu_pct": 55,
      "peak_memory_pct": 45,
      "latency_p95_ms": 0,
      "latency_slo_ms": 0,
      "burst_interval_days": 30,
      "burst_observed": false,
      "seasonality_period_days": 30,
      "seasonality_covered": false,
      "autoscaling_mode": "NONE",
      "resource_requests_present": true,
      "recommendation_age_days": 1,
      "latest_demand_age_days": 1,
      "bottleneck_claim": "UNKNOWN",
      "required_capacity_multiplier": 1.8,
      "scenario_recomputed": true,
      "scenario_cost_current": true,
      "provenance_ref": "src://batch-eight-day-window",
      "execution_authorization": false,
      "scenarios": [
        {
          "id": "NO_CHANGE",
          "expected_capacity_multiplier": 1.0,
          "expected_cost_multiplier": 1.0,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        },
        {
          "id": "SCALE_OUT",
          "expected_capacity_multiplier": 2.0,
          "expected_cost_multiplier": 1.6,
          "addresses_bottleneck": false,
          "constraint_ok": true,
          "rollback_defined": true
        }
      ]
    }
  ]
}
