PARITY AND REPRODUCIBILITY VERIFICATION — v1.0

SCOPE AND RESPONSIBILITY
This record reports checks actually performed during preparation of this
package. The Python model author compared the HTML implementation produced by
a separate assistant. An additional assistant independently recomputed the
27-scenario model; that work is documented in model-review-report.json.
Neither review is a human or external expert audit. No live agents, customers,
vendor accounts, financial accounts or deployed business workflows were tested.

FINAL PYTHON/HTML COMPARISON: PASS
The final HTML was evaluated in Node with window.computePlanner available and
without a browser document. Its output was compared with the Python model for
all 27 locked grid cases and nine additional boundary/zero/scientific-notation
cases, for 36 input cases in this final comparison. Fifteen result fields were
compared for each case: weekly variable cost; routine, rescue, maintenance and
total hours; planned accepted and unfinished counts; monthly software cost;
monthly owner-time valuation; full modeled monthly cost; software and full cost
per planned accepted item; conditional maximum-two-attempt software amount;
incoming capacity; and overload status. Capacity, status and null values were
compared exactly. Other values used relative tolerance 1e-12 and absolute
tolerance 1e-10, allowing floating-point and export rounding. No discrepancies
remained in the final comparison.

A prior boundary check found that Lean N=1 with a 2.08275-hour budget displayed
capacity zero rather than one. This was corrected before the final comparison.
Capacity and overload decisions now use exact integer ratios and decimal
budget parsing, not an epsilon that would admit insufficient budgets.

The nine additional input cases used in the final comparison were:
[
  {
    "N": 1,
    "profile": "Lean",
    "budgetHours": 2.08275,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 1,
    "profile": "Lean",
    "budgetHours": 2.082749999999,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 6,
    "profile": "Planning",
    "budgetHours": 2.793,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 6,
    "profile": "Planning",
    "budgetHours": 2.792999999999,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 1,
    "profile": "Surge",
    "budgetHours": 2.2575,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 1,
    "profile": "Surge",
    "budgetHours": 2.2574999999989998,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 0,
    "profile": "Planning",
    "budgetHours": 0,
    "fixedMonthly": 200,
    "hourValue": 40
  },
  {
    "N": 0,
    "profile": "Lean",
    "budgetHours": 2,
    "fixedMonthly": 0,
    "hourValue": 0
  },
  {
    "N": 1,
    "profile": "Planning",
    "budgetHours": 1e-07,
    "fixedMonthly": 0,
    "hourValue": 0
  }
]

INVALID INPUT CHECKS: PASS
Ten invalid-input calls were checked: negative workload, fractional workload,
NaN workload, infinite workload, workload above the JavaScript safe-integer
range, unknown profile, negative review budget, infinite review budget,
negative fixed software cost, and NaN owner hourly value. Each returned
valid:false with an error message. These are input validation checks, not ten
business deployments or outcome observations.

ZERO INPUT BEHAVIOR: PASS
Zero workload retains the fixed software amount and two maintenance hours.
Per-accepted costs and incoming capacity are unavailable at zero workload.
Zero fixed software cost and zero owner hourly value remain valid inputs.

ONE FRESH-PROCESS REPRODUCTION: PASS
One isolated fresh Python process ran build_model.py --output in a temporary
directory. All six generated files were byte-identical to the reviewed files:
assumptions.json, roles.csv, scenario-results.csv, scenarios.json,
MODEL-METHODOLOGY.txt and summary.json. None of these source/export bytes changed
after that comparison. This check does not regenerate the HTML or review files.

BOUNDARIES OF THESE CHECKS
The final parity comparison covered the pure calculation interface, not a live
browser interaction, visual acceptance test or end-to-end deployment. Source
inspection also found no missing DOM targets, duplicate IDs, missing label
targets or external resource dependencies. It does not establish compatibility
with every browser or the suitability of the authored assumptions.

CHECKED FINAL HTML SHA-256
43926e3fb8d0ed81592f9c3e0c19300133d51b8a0d63b8fdd3b1e2c9dea067d2

All packaged file hashes are listed in SHA256SUMS.
