SUPPLEMENTARY CODE 1 -- offline reproduction

1. Extract both Supplementary ZIPs into one directory so SR_Reproducibility/ is merged.
2. Use the tested Python 3.12 environment (version 3.12.14; see environment_tested.json). In a virtual environment: python -m pip install -r requirements.txt
3. Change directory to SR_Reproducibility, then run: python run_all.py

All fitting, scoring, verification and figure generation then run locally without downloading anything. Installing dependencies may require network access. Figures appear in figures/, round2/phone/, round2/capacity/, round2/androwatts/ and round2/numerical/. Results and independent checks are written alongside the relevant scripts. Logs are in run_logs/. A successful run prints PASS and creates reproduction_run.json and reference_comparison.json. The optimizer may take several minutes. Minor library/platform floating-point differences can require tolerance review; exact tested versions are pinned.

Code organization:
analysis/: original acquisition alignment audit (optional private source), fixed-session power evaluation, independent arithmetic check, coverage/source-quality figure.
round2/phone/: seven fixed candidate models; equal-sample/time-support/minute metrics, screen/temperature descriptions, continuous segments, forward 30-minute blocks and prequential FFRLS (prediction before update). Protocols and unfavorable outcomes are retained. Already-inspected session holdout remains exploratory.
round2/capacity/: analyze_multicell_offline.py is the default CSV-based entry with unchanged fitting functions, initializations, bounds and first-75%/last-25% splits. verify_multicell_offline.py checks included data, saved parameters, all 25 model/cell metric rows and chronology. Full original extraction/fitting and MAT verifier remain in analyze_multicell.py and verify_multicell.py; these are optional and require official raw downloads using download_data.py. Raw extraction is not silently claimed to have been rechecked without MAT files.
round2/androwatts/: locally authored analysis and independent verifier. Original publisher analysis.py is included unmodified ONLY as read-only source evidence for the 4.4 V conversion and missing-value sentinels. No supplied runner imports or executes that publisher script. fetch_selected.py is optional source retrieval, not needed offline.
round2/numerical/: illustrative numerical verification and independent analytical checks. These scripts generate designed scenarios, not physical observations.

verify_reference_results.py checks regenerated capacity predictions/metrics against all original 25 fits, plus phone, public-profile and numerical tables. SHA-256 manifests establish file integrity. Local package validation report is included as LOCAL_REPRODUCTION_CHECK.json after the archive is tested.

Original author data collection source/Android application code was not supplied in the evidence, and is not represented as included. Reproduction begins at documented field-limited telemetry. audit_sessions.py accepts an explicit private ZIP path if its owner wishes to repeat original raw-to-CSV alignment. Run it only in a separate working copy because it writes full diagnostic outputs.
