5 September 2026. Freeze before new concentration aggregation. The previous goal turn made progress by publishing the verified ambient archive and reviewed map UI. This work advances background/chemistry input readiness; it does not establish a site prediction.
Evaluate the acquired provider-verified Squamish Elementary E304570 hourly PM25, NO, NO2, NOx, O3 and SO2 record for 2023–2025 as potential background inputs. Use the independently calendar-audited expected-hourly CSV; retain hashes of it, all three exact native annual CSVs and method sources. An independent reviewer reads native CSVs directly. All numerical values are in original units (PM25 µg/m³, gases ppb). Use Decimal precision 50, RAW_VALUE as the full-precision primary series; provider ROUNDED_VALUE is a separate sensitivity. No unit conversion, source subtraction, wildfire exclusions, negative-value clipping, native-data edits or fitted concentration adjustment.
2025 is the most recent complete calendar year acquired and the candidate period matching our observed wind benchmark. It is not a validated model forcing year. Compute 2023 and 2024 separately to expose year sensitivity; do not select the lowest year or automatically average fixed background values across years. No value is applied to the public map. Source/site representativeness and agreement on a modelling plan remain distinct gates.
Use native DATE and hour ending 1–24, fixed PST UTC−8, without daylight saving. Hour 24 belongs to its native labelled date/month/year and ends at the following midnight. Retain interval start/end in PST and UTC. Expected hours: 8,760/8,784/8,760. Missing values remain missing for coverage.
Report numeric/expected hourly counts per quarter. Candidate eligibility requires at least 75% original hourly coverage in EACH quarter, following the dispersion guideline §8.1.4; objective-assessment exceptions do not apply.
Daily means and daily maxima require at least 18 numeric hours, a declared 75%-of-averaging-period convention informed by Field Sampling Manual B1 §7.1. A high incomplete-day maximum cannot override it. For a daily-based candidate, additionally report and require ≥75% valid days in each quarter as a project guard, not a quoted dispersion-guideline daily algorithm. Compute available descriptive statistics even if a gate fails; mark them ineligible rather than erase the evidence.
For each pollutant/year and both precision streams, preserve hourly and valid-daily sample counts and all values/dates tied at each selected statistic.
Percentile convention: sort N valid values descending; select rank N−floor(pN/100), retaining ties and avoiding interpolation. This declares the B.C./CCME ambient order-statistic convention for the incomplete-but-eligible candidate record; the dispersion guideline does not itself specify its full percentile algorithm. Preserve full precision; display later to suitable significant figures without changing the stored value. Also report NumPy/R-style linear P98/P99 as an explicitly labelled calculation-convention sensitivity using position (N−1)p/100, implemented independently of third-party quantile defaults. No interpolation sensitivity changes primary eligibility.
Following July 2022 NO2 modelling guidance §3.3.2, calculate annual hour-of-day P98 and monthly hour-of-day maximum separately for each year, then calculate an equal average of the three annual selected values for each matching bin. Never pool the years before selecting percentiles/maxima.
Use 24 native hour-ending bins 1–24. Annual bins use the declared discrete valid-N P98; for a complete year this is the eighth highest. Monthly bins use the maximum, as specified for complete months; the missing-bin extension is declared here. Each bin reports expected and numeric counts, selected value, tied timestamps and eligibility. Require the annual pollutant record's hourly-quarter gate plus ≥75% original observations in the bin. For annual bins, also require ≥75% of that hour's expected observations in each quarter. These per-bin gates are additional project guards; the NO2 guidance does not give a missing-bin completeness rule.
The three-year candidate bin is usable only if ALL three corresponding yearly bins pass. Otherwise retain the arithmetic mean as a descriptive value with failed eligibility, identifying each failed year, rather than quietly changing weights or substituting another year. Summaries explicitly state whether all 24/288 bins are usable. Produce separate latest-year and three-year tables. No seasonal bins (which would need prior December), no NO2 gap filling, no ARM2 fitting from a three-year sample, no Monte Carlo pairing and no combined plume prediction.
Produce a separate model-neutral CSV alongside the untouched observed stream. July 2022 NO2 guidance Appendix C requires ozone corresponding to the full meteorological period and representative of the facility. Those spatial/model gates are unresolved; this file only tests a documented data preparation method.
Identify maximal consecutive missing-hour runs from the original 2025 hourly calendar. If an isolated missing hour has genuinely observed immediately preceding AND following hours inside the candidate year, fill it with their arithmetic mean, per Appendix D. Do not chain interpolations or treat a synthetic value as an observed endpoint. Fill every remaining gap hour, including unresolved edge hours, with the maximum genuinely observed concentration in its native month in 2025, provided the ORIGINAL ozone record passes ≥75% completeness in every quarter and that month has a numeric observation. For 2025-only candidate meteorology, the all-years-in-model-period monthly maximum is the 2025 monthly maximum. Do not import higher values from 2023/2024 without changing the declared model period.
Keep observed/raw value, provider-rounded value, model-candidate value, method, run identity/length, endpoint/donor timestamps and unit for every hour. Monthly boundary runs use the appropriate month separately at each hour. All donor maxima include tied timestamps. If a gate or donor fails, leave the modelling candidate missing and flag the file as incomplete. Report original and prepared completeness separately, synthetic count by method/month, longest gap, maxima/means before and after, and all monthly donor values. A complete prepared file is not complete measured data, validated ozone at the flare, or an approved chemistry calculation.
Verify chronology, unchanged native hashes, unique keys, counts, no observed-value changes, all interpolation endpoints genuinely observed, every monthly donor from the declared period and every synthetic value flagged. Independently reproduce fixed table values, NO2 bins and ozone substitutions directly from native source rows. Preserve method ambiguities and failed gates in results. Publish a concise selection assessment and readable tables; keep exhaustive provenance as downloads. Do not change the simulation engine, colour scales, scientific status or question-guide narrative.