{
  "objective": "Minimise purchase plus supplier activation cost",
  "currency": "GBP",
  "solver": "OR-Tools CBC",
  "scenarios": [
    {
      "scenario": "baseline",
      "status": "OPTIMAL",
      "budget_gbp": 130000,
      "deadline_days": 35,
      "demand_units": 6000,
      "eligible_capacity_units": 17300,
      "eligible_supplier_ids": [
        "SI-S02",
        "SI-S04",
        "SI-S05",
        "SI-S06",
        "SI-S07",
        "SI-S08",
        "SI-S09",
        "SI-S10",
        "SI-S11",
        "SI-S13"
      ],
      "relaxed_cost_lower_bound_gbp": 118560.0,
      "total_cost_gbp": 123617.0,
      "budget_slack_gbp": 6383.0,
      "budget_utilisation": 0.9509,
      "quantity_supplied": 6000,
      "latest_delivery_days": 25,
      "objective_best_bound_gbp": 123617.0,
      "allocation": [
        {
          "supplier_id": "SI-S04",
          "quantity_units": 1700,
          "capacity_units": 2200,
          "moq_units": 300,
          "unit_price_gbp": 21.13,
          "lead_time_days": 24,
          "purchase_cost_gbp": 35921.0,
          "activation_cost_gbp": 250
        },
        {
          "supplier_id": "SI-S06",
          "quantity_units": 2300,
          "capacity_units": 2300,
          "moq_units": 500,
          "unit_price_gbp": 20.62,
          "lead_time_days": 25,
          "purchase_cost_gbp": 47426.0,
          "activation_cost_gbp": 250
        },
        {
          "supplier_id": "SI-S07",
          "quantity_units": 2000,
          "capacity_units": 2000,
          "moq_units": 400,
          "unit_price_gbp": 19.76,
          "lead_time_days": 21,
          "purchase_cost_gbp": 39520.0,
          "activation_cost_gbp": 250
        }
      ]
    },
    {
      "scenario": "expedited",
      "status": "OPTIMAL",
      "budget_gbp": 145000,
      "deadline_days": 22,
      "demand_units": 6000,
      "eligible_capacity_units": 9500,
      "eligible_supplier_ids": [
        "SI-S05",
        "SI-S07",
        "SI-S08",
        "SI-S09",
        "SI-S11",
        "SI-S13"
      ],
      "relaxed_cost_lower_bound_gbp": 118560.0,
      "total_cost_gbp": 135049.0,
      "budget_slack_gbp": 9951.0,
      "budget_utilisation": 0.9313724137931034,
      "quantity_supplied": 6000,
      "latest_delivery_days": 21,
      "objective_best_bound_gbp": 135049.0,
      "allocation": [
        {
          "supplier_id": "SI-S05",
          "quantity_units": 1700,
          "capacity_units": 1700,
          "moq_units": 700,
          "unit_price_gbp": 23.22,
          "lead_time_days": 20,
          "purchase_cost_gbp": 39474.0,
          "activation_cost_gbp": 250
        },
        {
          "supplier_id": "SI-S07",
          "quantity_units": 2000,
          "capacity_units": 2000,
          "moq_units": 400,
          "unit_price_gbp": 19.76,
          "lead_time_days": 21,
          "purchase_cost_gbp": 39520.0,
          "activation_cost_gbp": 250
        },
        {
          "supplier_id": "SI-S08",
          "quantity_units": 1500,
          "capacity_units": 1500,
          "moq_units": 400,
          "unit_price_gbp": 23.53,
          "lead_time_days": 19,
          "purchase_cost_gbp": 35295.0,
          "activation_cost_gbp": 250
        },
        {
          "supplier_id": "SI-S09",
          "quantity_units": 800,
          "capacity_units": 1500,
          "moq_units": 300,
          "unit_price_gbp": 24.7,
          "lead_time_days": 17,
          "purchase_cost_gbp": 19760.0,
          "activation_cost_gbp": 250
        }
      ]
    },
    {
      "scenario": "budget_conflict",
      "status": "INFEASIBLE",
      "budget_gbp": 117560,
      "deadline_days": 35,
      "demand_units": 6000,
      "eligible_capacity_units": 17300,
      "eligible_supplier_ids": [
        "SI-S02",
        "SI-S04",
        "SI-S05",
        "SI-S06",
        "SI-S07",
        "SI-S08",
        "SI-S09",
        "SI-S10",
        "SI-S11",
        "SI-S13"
      ],
      "relaxed_cost_lower_bound_gbp": 118560.0,
      "allocation": [],
      "conflicting_conditions": [
        "budget below relaxed minimum unit-price lower bound"
      ]
    }
  ]
}
