REPRODUCING THE BIKE-SHARING ANALYSIS

Package files
day.csv: unchanged daily UCI source data.
source-readme.txt: unchanged Readme.txt from the source archive (renamed to avoid case-insensitive filename collisions).
source.txt: provenance, licensing and metadata caveats.
analyse.py and identical analysis.py alias: deterministic analysis and JSON/report export.
requirements.txt: exact package versions used with Python 3.12.
analysis.json: UI-ready results, six selected coefficient contrasts, all coefficients, 184 holdout predictions and 731 actual residual records.
coefficient-covariance.csv: complete 27-by-27 HAC covariance matrix of the full association model, including alpha.
report.txt: human-readable scientific example report.
optimod-bikeshare-report.pdf: the ten-page scientific reference report, including the Statistical test record appendix.

In a fresh Python 3.12 environment:
python -m pip install -r requirements.txt
python analyse.py

The script also recognizes a sibling vendor/ directory for isolated package installation, as used during preparation. It verifies the original CSV hash and stops if input bytes change. It does not fetch new data or overwrite the original CSV. Package versions may require a compatible operating system and Python wheel; record any deliberate version changes before comparing results.

SPECIFICATION
Count response cnt. Log-link Poisson versus discrete negative-binomial NB2 with alpha estimated by maximum likelihood. Same mean equation for both: linear date trend, categorical month and weekday, holiday, centered normalized temperature and its square, humidity, normalized wind, categorical observed weather.
547 training records through 30 June 2012; 184 chronological holdout records from 1 July 2012. The formula and split were specified before fitting. Selection uses training dispersion and training working-likelihood AIC; the holdout does not tune the model. The association model is a separate refit on all 731 observations after holdout evaluation.

WHY THERE IS NO ALL-CHECKS-PASSED BADGE
Poisson has severe overdispersion but lower held-out MAE/RMSE than NB2. NB2 describes extra count variation better in training; it is not the universal point-prediction winner. Its residuals retain serial dependence. The primary uncertainty estimates use approximate HAC intervals with seven daily lags and finite-sample correction, not independent-observation standard errors.
A recorded humidity average of zero on 10 March 2011 is suspicious but unproven as missing. Keep and flag it; report a separate sensitivity refit excluding it. No data imputation, winsorization or outlier removal is applied to the primary analysis.
casual and registered are excluded as exact components of the target. instant is an ID. atemp is excluded for near redundancy with temp. Date-derived controls replace duplicate calendar fields. Current and archive metadata disagree on temperature conversion/season names, so normalized temperature and parsed month are used.

INTERPRETATION
The temperature row is a covariance-aware nonlinear contrast from normalized 0.50 to 0.60, holding other variables fixed. It is not a global constant temperature slope. Other displayed ratios compare a stated increment or reference category. Confidence intervals are pointwise, exploratory and not corrected for multiple testing. Weather category 3 has only 21 days; category 4 is absent.
The seven-day baseline uses actual demand observed one week earlier. After the first test week this includes earlier holdout outcomes, so it is a rolling benchmark, not a fixed-origin forecast. Model holdout evaluation uses realized weather, so it is conditional-demand evaluation rather than an advance operational forecast.

UI MAP
Import: dataset, source, rowSamples.
Quality: quality.
Preparation: preparation.
Models: model.comparison, split, model.choice.
Results: model.coefficientRows, evaluation, diagnostics.
Report: report.txt, limitations, reproduce.

Recommended display precision: counts as integers, MAE/RMSE to one decimal, AIC to one/two decimals, percent contrasts and intervals to one decimal. Keep source JSON numeric and round only in display.

Supplement: test-details.json and test-details.txt record the existing tests, diagnostics, exact criteria and limitations. No analysis refitting was performed for this appendix.
