{
  "schema": "facility-assignment-review-v1",
  "generated_at_utc": "2026-10-09T01:54:40.173597+00:00",
  "status": "review_complete",
  "errors": [],
  "input_files": [
    {
      "name": "assignments.csv",
      "bytes": 30,
      "sha256": "dba29a983d37c6f0bf1ecec7ab69e7fd4bc8cc397d3c07d1bd9d64f643c0939a"
    },
    {
      "name": "clients.csv",
      "bytes": 27,
      "sha256": "1edc27f300da7f5f7aea8fbd93425b57ef56324e9a798752ef1f11608d752757"
    },
    {
      "name": "costs.csv",
      "bytes": 60,
      "sha256": "4b12f689feed65dfa6ad50454a865346761c8bf122b7f1ad0bb54ca23653efa2"
    },
    {
      "name": "selected.csv",
      "bytes": 11,
      "sha256": "0de1e17906ce090dc97cbc69422f12f3e843aa7ba547145ddb8f5198affa0eb4"
    },
    {
      "name": "sites.csv",
      "bytes": 48,
      "sha256": "e40d4fc826fdd3d836129413579a1f08437ef574fba9a20a81812def0df3041b"
    },
    {
      "name": "study.json",
      "bytes": 419,
      "sha256": "9a1dcb69778052e42b685790807bd97e954eea35abb7483fae67186f0dc7cb39"
    }
  ],
  "submitted": {
    "valid": true,
    "selected_ids": [
      "S0"
    ],
    "issues": [],
    "exact_cost": "0",
    "assignments": [
      {
        "client_id": "C0",
        "site_id": "S0"
      },
      {
        "client_id": "C1",
        "site_id": "S0"
      }
    ],
    "loads": {
      "S0": "0"
    }
  },
  "nearest_reassignment": {
    "valid": true,
    "selected_ids": [
      "S0"
    ],
    "issues": [],
    "exact_cost": "0",
    "assignments": [
      {
        "client_id": "C0",
        "site_id": "S0"
      },
      {
        "client_id": "C1",
        "site_id": "S0"
      }
    ],
    "loads": {
      "S0": "0"
    }
  },
  "solver": {
    "status": "OPTIMAL",
    "checked_plan": {
      "valid": true,
      "selected_ids": [
        "S1"
      ],
      "issues": [],
      "exact_cost": "0",
      "assignments": [
        {
          "client_id": "C0",
          "site_id": "S1"
        },
        {
          "client_id": "C1",
          "site_id": "S1"
        }
      ],
      "loads": {
        "S1": "0"
      }
    },
    "version": "9.15.6755",
    "time_limit_seconds": 2,
    "workers": 1,
    "seed": 125,
    "demand_scale": 1,
    "objective_scale": 1,
    "reported_scaled_objective": 0.0,
    "reported_scaled_best_bound": 0.0,
    "reported_wall_seconds": 9.2e-05,
    "model_sha256": "290328da40db62067ff04a6a41ce7944a95a6a3478772396047136351f1bccbc",
    "scope": "Solver status and floating numerical bounds are reported only; independent quality uses an exact checked plan and the separately justified relaxation bound."
  },
  "comparison": {
    "best_origin": "submitted",
    "best_checked_plan": {
      "valid": true,
      "selected_ids": [
        "S0"
      ],
      "issues": [],
      "exact_cost": "0",
      "assignments": [
        {
          "client_id": "C0",
          "site_id": "S0"
        },
        {
          "client_id": "C1",
          "site_id": "S0"
        }
      ],
      "loads": {
        "S0": "0"
      }
    },
    "exact_lower_bound": "0",
    "lower_bound_scope": "Each client may use its cheapest candidate; opening count, required sites and capacities relaxed",
    "exact_gap": "0",
    "independently_known_optimum": "0",
    "improvement_over_submitted": "0"
  },
  "scope": "Exact frozen weighted assignment model only. No strict-metric/source-theorem eligibility, geographic validation or customer benefit is established.",
  "study": {
    "schema": "facility-assignment-review-v1",
    "title": "Zero demand remains explicitly assigned",
    "cost_units": "cost units per demand unit",
    "demand_units": "demand units",
    "provenance": "Generated computational control; no customer or geographic data.",
    "k": 1,
    "selection_rule": "exactly_k",
    "assignment_rule": "whole_client_to_one_open_site",
    "objective": "weighted_sum_assignment_cost",
    "additional_constraints": []
  },
  "normalized_input_sha256": "b985c7064bd2d4b784c76d99080d52c5dfc4751bb55d42e2216205134932d9b7",
  "model_support": {
    "supported": true,
    "issues": []
  }
}
